Changelog 0.6.0
Bump version for release
Merge branch 'master' into next

Conflicts:
	CHANGELOG.rst
WIP - empty records tests for #42
Gracefully handle unknown keyword arguments to Property()

Previously, this would raise:

    ======================================================================
    ERROR: test_unknown_kwarg (test_property.TestProperties)
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File "../normalize/tests/test_property.py", line 474, in test_unknown_kwarg
        Property(yo_momma="so fat, when she sits around the house, "
      File ".../normalize/property/meta.py", line 213, in _has
        return has(selfie[0], self, args, mixed_kwargs)
      File ".../normalize/property/meta.py", line 74, in has
        extra_traits.update(list(implies_traits)[0])
    IndexError: list index out of range

Handle & gracefully explain the usage error.
First stab at a definition of 'emptiness' for properties

The 'AttributeError' raised when a property is not set is troublesome for
many use cases, particularly marshaling from JSON.  To solve this, allow
for customization of the behavior when properties are empty.  The approach
implemented in this change are:

  * 'empty', distinct from 'default', specifies a value which is returned
    when the object slot is empty
  * assigning the empty value to a slot is the same as deleting the
    attribute.
  * empty values do not have to pass the type constraint
  * all ``JsonProperty`` attributes are ``empty=None`` by default (use
    ``empty=AttributeError`` to restore previous behavior with
    ``JsonProperty``)

See github issue #42 for the full context and discussion.