Add a Message API and re-factor some classes and

* Rename "user" to be a "recipient"
* Rename interface "TableStructure" to be "Listable"
* Introduce Message Template and Message Layout domain model
* Introduce a Message API