Created ValidationExceptiosn and ValidationMessages

These are the building blocks of a simple messaging system. Message are
highly flexible, so that can be mutated to serve different needs in
different contexts.

Up next is json persistence, I promise.