Completion for Controller methods on route files

* At a high level, the action completion engine executes the
  following steps:

1) parse the action input to extrapolate the fully qualified
   name that will be used to compute the proposals.
   `ActionRouteInput` is the class that encapsulates the logic
   for parsing the action input.

2) Using the presentation compiler, retrieves the symbol for the
   fully qualified name found at point 1). This is done by
   `MembersComputer$MembersLocator.prefixSymbol`. The instantiated
   `MembersLocator` depends on the action input.

3) The interesting members for the `prefixSymbol` found at step 2)
   are filtered based on the type of the symbol. The filtering logic
   is encapsulated in the different subclasses of `MembersComputer`.

4) The members returned by 3) are then checked against the action
   input. The members that match the action input are then transformed
   into action proposals that will be displayed to the user.

5) The proposals may be sorted first by the kind of member (types
   are shown before packages), and then alphabetically.

* Supports both Scala and Java.

* Supports action input syntax for both standard controller invocation
  and the new syntax for controller classes instantiation that was
  introduced in Play 2.1.

Fixes #83