Support imenu

This pull request closes #80, #77, #56 . It also may help to address ensime/ensime-server#471
If we wanted, this could be simplified to just search for the next `=`. The old syntax for Unit functions has been deprecated, so even they have =.

```scala
def foo { () } // this is deprecated, no need to support it
def foo: Unit = { () } // this is the correct way
def foo = { () } // this is also OK
```