Feature messages

This is the messages part of the app, all the main development is done in the development branch, this one is to make single PR for individual parts/features to make it more easier.

This branch is for the message backend code, after this PR is merged I'll add the views.
new line after private