Add Apply case to ScalaCompletions. Fixes #1001218

This allows scalaCompletions to handle method invocation completions.
Also refactored scalaCompletions to tidy things a little.
remove unneeded comment
review comments - make stuff options
give correct start point in completion

for calls to methods in scope
remove val in for
fix midword method completions
add completion context, fix Apply edge case

In particular, we choose not to insert the argument list when we have an
Apply() context, similar to what Java does. This helps to reduce the
chances of messing up already existing code.
Merge branch 'master' of https://github.com/scala-ide/scala-ide into fix-autocompletion-inside-method-t1001218

Conflicts:
	org.scala-ide.sdt.core/src/scala/tools/eclipse/ScalaPresentationCompiler.scala
	org.scala-ide.sdt.core/src/scala/tools/eclipse/completion/ScalaCompletions.scala
move CompletionContextType to CompletionContext
remove debugging output
Merge branch 'master' of https://github.com/scala-ide/scala-ide into fix-autocompletion-inside-method-t1001218

Conflicts:
	org.scala-ide.sdt.core/src/scala/tools/eclipse/ui/ScalaCompletionProposal.scala
add additional method to test file

to make sure we don't regress by providing a red herring for completion
fix bug with Apply type completion

dotta found this, where we're still using prefix matching for function
applies, where we really shouldn't since we already know the function
name.
incorporating some of @dragos suggestions

avoid name duplication in contextType
remove side-effecting
try and use scope
remove closure
add scaladoc
Merge pull request #496 from danchia/fix-autocompletion-inside-method-t1001218

Fix autocompletion inside method t1001218