Rearrange the project structure

Utils for common types
Factor out NLP controller to its own project
Not sure if I broke things.

@evansb @digawp @angathorion 

I still have not implemented types for the GUI yet.
Here and another one on line 54