Support imenu

This pull request closes #80, #77, #56 . It also may help to address ensime/ensime-server#471
why not use `regexp-opt` here also?