Further Messages API work

- Allow users to create outgoing message via API
- Check message status based on direction
- Check direction doesn't change after message creation
- Save different message details depending on direction and if the message
  is new.
- Adding more tests for the new validation rules