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.
Updated the comment to show the correct output
The whitelist and blacklist behavior is finally abstracted and is now a
clean system.  The idea is there are now functions called `whitelist` and
`blacklist`.

You create one like this:

    blacklist(['field_name', 'other_field'])

The `blacklist` and `whitelist` functions create a new function which
is passed into `apply_shape` as the `gottago` argument.  This function
simply looks at each field during serialization and decides whether or
not the field should be evicted.

That function is what is returned by `blacklist` and `whitelist`.  No
object is used because functions are better.  :)
My last refactor accidentally forgot some handling for `allow_none`. That is now fixed.
Migrated the concepts of whitelist and blacklist under the Options
for model definitions.

This makes the configuration stored on model instances.

The other change this commit brings is that permissions are now completely
configurable.  The name of groups is a key in a map where the value is a
function that operates as a blacklist or whitelist.  In fact, the functions
`whitelist` and `blacklist` are written such that they themselves create the
correct function to use in `apply_shape` for the `gottago` argument.

In short, you define a class that looks like this, which I find MUCH
cleaner and MUCH more configurable.

    class User(Model):
        secret = MD5Type()
        name = StringType(required=True, max_length=50)
        bio = StringType(max_length=100)

        class Options:
            roles = {
                'owner': blacklist([]),
                'public': whitelist(['name', 'bio']),
            }
Changed the syntax of the whitelist / blacklist functions and added a wholelist function for when all fields should be let through.  Thanks for the suggestions @apgwoz
Update README.md

d'oh
Insignificant fix
added missing ModelException import when calling validate_instance with validate_all=True
Merge pull request #102 from bdickason/patch-1

Insignificant fix
Improving comments