Add failing test for version
Fix version duplicating
Support subschema in overwriteByKey
Overwrite by key should do nothing if the key is empty.

The value should be populated, so if it's empty, then the
whole object should be considered empty.
Add failing test for type: "array" not on version schema
Merge remote-tracking branch 'open-contracting/duplicating_version_2'
Use test_suite from setuptools for "setup.py test"
Document unique option for the version strategy.
Make examples in README pass tests in Py 3.4
Make examples in README pass tests in Py 3.4
Add 'type': 'array' to version strategy schema.
Merge branch 'array-type-not-specified'
Default fallback if no "items" in OverwriteByKey
Ignore array elements that do not have the key.
Allow merge_key to be an arbitrary JSON pointer
rename overwriteByKey, match_key.

overwriteByKey -> arrayMergeById
match_key -> idRef
'id' is now default value for 'refId'
Don't pass extra kwargs to descend.

This breaks forward compatibility with yet unknown mergeOptions.
Add ignoreId option.
Raise an error if 'items' is an array.