Expose messages + improve tests

Refactor core function to:
- improve clarity using stripMargin
- expose all messages inside a "messages" property of the function in order to allow live update of messages

Improve tests by:
- removing useless usage.scala.html
- testing both generation system
- having a generic testing architecture
- having more tests

Enjoy!