Add overrideByKey strategy

Allows you to override arrays by first identifying a key to match on.
Rename to overwrite
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.
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.
Test what happens with non-unique ids
Document arrayMergeById in README
Merge branch 'master' into add-overwritebykey-strategy

Conflicts:
	jsonmerge/strategies.py
Use new exception classes.
Add more tests for arrayMergeById
Rname 'unique' to 'ignoreDups' in version strategy

'unique' gives the false impression that duplicates other than the last version
are removed.
Merge branch 'add-overwritebykey-strategy'
Set version to 1.1.0