fixed a bug HashType when converting a value; the fix just tests the value to ensure it is a hexadecimal string rather than converting the value to the a long integer.  Without this fix, the final assertion in test_md5_type in test_serialize.py fails
My name was listed twice.
Adjusted `apply_shape` so that the role argument is now optional everywhere.
Removed unnecessary argument `shape_converter` from `apply_shape` loop.  Logic is cleaner now.
Adjusted functions in `schematics.serialize` to work on classes instead of instances.
Merge branch 'upstream/master'
Added comments and am starting the process of cleaning up the code.  No logical changes.
Adjusting the arrangement of functions
Moved all functions over to operating on classes.  I also wrote docstrings for the functions that did not already have them.
Wrote more documentation.  w00t!
Added comments and renamed some things to be more clear in code. No logical changes.
Changed an argument in FieldDescriptor.__get__ to not be a keyword, since it is required.
Wrote comments / docs for serialize module.
Removed erroneous text
Changing the docs to be friendlier.
The implementation of `allow_none` for compound types was checking the wrong
variable for the `serialize_when_none` setting.

This is now working correctly.

    >>> class Foo(Model):
    ...     s = StringType()
    ...     class Options:
    ...         serialize_when_none = True
    ...
    >>> f = Foo()
    >>> f.serialize()
    {'s': None}
Fixed a bug around decimal types reporting errors.
Beginning to update the documentation and break concepts out into sections.
Merging in a change to the MD5Type from Ryan Olson.

Merge branch 'master' of https://github.com/ryanolson/schematics into ryanolson
v0.9.1