-Add: Validation and StringField.
-Change: Expanded the simple test a bit.
-Change: the init logic of a Packet now also allows *args.

The 'default' behavior of *args is that they match the order of the
fields; also note that **kwargs items override any values set by *args.
( Packet("data", name_of_first_field="other_data") will yield
name_of_first_field to be set to "other_data")
-Change: inheritance of Meta options wasn't fully working.
-Change: Emit a warning, but don't stop models from being created.

Mind though, that the 2nd model will still not 'override' the first
without the override meta option.
-Add: Constants file.
-Change: rework the validation logic a bit so that the user can define special validators.
-Change: Let StringField trim the length if required.
-Add: Some basic validators.
-Add: Import validators and constants in __init__.py.
-Change: order enum imports... and add some more enums.

Mostly taken from libopenttdadmin2....
-Change: use six to iterate over the keys.

This way the code runs identically between 2.7+ and py3k
-Add: Add enum validation for enums.Action.
-Add: JsonField support.

basic support for now.
-Add: validation for the JsonField.