Nullable marker and IgnoreCase validator

This adds two features:

* A `Nullable` marker. Keys marked `Nullable` test against the validators given in the schema but are allowed to be `None` in addition to any otherwise valid values. This saves some boilerplate over using patterns like `Required('key', None)` or `'key': Any(value1, value2, type, validator, None)`, which may not work as the problem requires in all cases.
* An `IgnoreCase` validator. `IgnoreCase` takes a parameter `expected` and case-insensitively compares a string value to the `expected` value. If the strings match, validation passes. It accepts an optional keyword `out` to allow the caller to transform the returned value with existing validators like `Lower`, `Upper`, etc.