"Fork choice rule" : A general term? or a specific algorithm? Is "Fork choice rule" a general term including all the algorithms used for choosing a branch among other branches in a fork (including longest chain rule in Bitcoin etc) ? 
Or is it a specific algorithm designed for Casper Ethereum ?
A fork choice rule is a general term.

For some history I've found, one of the early written descriptions of the term is from March 2017
https://medium.com/@VitalikButerin/minimal-slashing-conditions-20f0b500fc6c


  A fork choice rule is a function, evaluated by the client, that takes
  as input the set of blocks and other messages that have been produced,
  and outputs to the client what the “canonical chain” is.


August 2015 may be the first time "fork-choice rule" was written in a blog post.
https://blog.ethereum.org/2015/08/01/introducing-casper-friendly-ghost

The 2013 GHOST paper is one of the earliest, prominent publications of a fork choice rule different from Bitcoin's, but it did not specifically mention the term.