-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.