Refactor project prepare context

Split context into context loader and interactor
Simplify multiple exceptions
Refactor project add usecase
Refactor user dashboard usecase
Refactor user login usecase
Refactor user logout usecase
Refactor user register usecase
Remove interaction trait

No need for this - now that dependencies are properly constructed
Make project edit also prepare the project and update the proposal