Support imenu

This pull request closes #80, #77, #56 . It also may help to address ensime/ensime-server#471
I don't think that this is only looking for definitions. It could also be a class which does not use (or can it?) the '=' syntax