Ensime support: code navigation

This is the first round of changes to have Ensime support in pants. 

Currently ensime generator can generate ensime projects with runtime and compile time dependencies to get code navigation working in ensime.