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.
this would be shorter if you use:

```ruby
before_action :find_message, except: [:create, :new, :index]
```