expanding comments
Heavy reworking of the metaclass system.

The concept of a Mixin has been removed.  It is replaced instead with simple inheritance.  The concept of a Mixin in previous releases pertained to how the serialization of the class structure was represented.  That component of the system has been removed as it has not proven to be useful.

The class used to configure the meta system is has been renamed from 'Meta' to 'Options'.  This name is what users of the framework use to configure their Models, so calling it 'Options' seems more informative.

The fields `_public_fields` and `_private_fields` are now on the Options class, which now also sets them to be instance level variables instead of class level variables.  I think this will make some folks out there quite happy.  :)
Finally removed _id. If you want an id field named _id, just put it on the model.
Updated demos to use new meta class config
Completely removed the SafeableMixin in favorr of just having functions. Some
of the code had	   to be reworked to handle recursion properly, but the changes
are fairly straight forward. (Take a look!)

Also updated the demos to use the new system.
Moved the make_safe functions into a module called `filters` and updated the
demos accordingly.

I am not sure about this name yet, but I wanted to move the functions outside
of `models`.
Moved the to_python and to_json functions into the serlialize module.  The serialize module is also in this commit. It simply renames the old filter module, which was a bad name. This commit includes an update to many tests too.
Renamed `shape` to be `apply_shape`.
Moved all the json schema functions over to serialize too
Moved all of the validation functions into their own module.  This now separates
the class, which controls the structure of a model, from virtually all of the functions
that operate on it.  I am STOKED on this.

The names of the validation functions, and also the serialization functions, are
obviously bad.  They *were* bad, but it's ugly now.  That will be fixed soon so
look out for that in future commits.
was chmod 755 for some reason
accept some strings as boolean
This commit represents a refactoring effort to put `to_python` and `to_json` on
the same fundamental loop as the make_safe functions.

The end result is that everything that wants to serialize, including a vanilla
serialization, goes through a single function where all serialization customization
and functionality is handled.
Updated to use new validate_instance function
Minimization now works across all serialization functions! w00t
Refactored the jsonschema functions to leverage apply_shape. The clean fix reached out into having the minimized field name feature carried over into the json schema serialization too. Stoked on that.
Gave a function some space in the code
Added an `allow_none` flag to `apply_shape` that allows for fields with no value to be printed in serializations.  This was necessary for jsonschema and is a nice thing to have in the other layers too. It will be added to the other layers as this fix is primarily to capture fixing the jsonschema output.
Updated README to tell folks about the big changes going on
Added an `allow_none` flag to `apply_shape` and consequently out to
`to_python` and `to_json`, etc.

The default behavior is to not print empty fields, but this makes that
configurable.