Mega-commit: Persistence command generator, enforced name policy, tests.

- This commit introduces a new class used for constructing messages to
    the persistence layer.
- Another change is a better name policy: functionThatDoesSomething(),
    CoolClass, plain_variable, enumerationItem.
- Tests added for the message generator.
- Enhanced old tests so they fail when an exception is thrown.