v0.0.0, 2014-02-19 -- Project Start

v0.1.0.3, 2014-03-03 -- Validation, coercion, forms, schemas
This version supports Python 3.x.
- `validate`: Validate data against a schema.
- `@validation`: Add input/output validation to a function.
- `CoercionManagerBase`: Parent class for coercion managers. Subclasses declare
  coercion methods for input and output.
- `coerce_input` and `coerce_output`: Coerce data with a schema, using the
  coercion methods declared on a subclass of `CoercionManagerBase.
- `@coercion`: Add input/output coercion to a function.
- `ValidationError`: Raised when validation fails.
- Schema types: Special types for defining schemas. Includes `AnyType`,
  `DictOf`, and `ListOf.
- Validators: Define validators as classes or functions. Add validators to a
  schema using tuples.
- `validators`: Pre-defined validators for common use cases. Includes
  `Required`, `OneOf`, `Range`, and `Regex`.

v0.1.1, 2014-07-28 -- Validation improvements
- Error output format: Validation errors are returned as a list of error
  dictionaries. Each error dictionary includes 'location', a sequence of keys
  which identifies the location of the invalid data within the input data.
- `ValidationError` subclasses: Add separate error classes to differentiate
  between "structure" errors and "rules" errors, and between "input" errors and
  "output" errors.
- Dictionary validation parameters: Add parameters to dictionary structure
  validation. `optional_keys` ignores missing optional keys. `strip_extras`
  alters the validated dictionary by removing unknown keys.
- `Dict` schema type: Add `Dict` schema type. Allows the user to specify
  dictionary validation arguments for a specific dictionary.

v0.1.2, 2014-08-11 -- Process functions
- Add `process`, `process_input`, `process_output` functions. These allow the
  user to specify a schema of callables, to be called with a schema of data.
  Validation errors are caught and raised together. This allows for dependent
  validation; validation errors that are raised by the functions which consume
  the data.

v0.2.0, 2015-03-26 -- Refactor, `render`, `SchemaType`
- Major refactor: Refactor `validation_tools`, `coercion_tools`, and
  `process_tools` modules. Improve consistency and code re-use. All of these
  modules now use `dispatching` tools.
- Remove unused decorators: Remove `@valdiation` and `@coercion` decorators.
  These were not being used.
- Remove "input", "output" functions: Remove `validate_input`,
  `validate_output`, `coerce_input`, `coerce_output`. These input/output
  distinctions were not being used.
- `render`: This function is responsible for transformations of input data after
  coercion and validation.
- `SchemaType`: Allows the user to define schema types with custom coercion and
  rendering behaviors.
- `coercion_tools` changes: Change the behavior of `CoercionManager`. Coercion
  methods are decorated, instead of having special names. This allows a
  coercion method to be re-used.

v0.2.3, 2015-03-30 -- `SchemaType` subclasses in schemas
- `SchemaType` subclasses (not instantiated) are valid schemas. Previously, a
  schema had to be either a class (a `type` instance) or an instance of one of
  the special schema classes (`dict`, `list`, etc.).
