Support `patternProperties` when considering non-true `additionalProperties`

This makes `patternProperties` correctly interact with
`additionalProperties` according to [1].

[1] http://jsonary.com/documentation/json-schema/?section=keywords/Object%20validation#keywords/Object%20validation/03%20-%20additionalProperties
Merge pull request #4 from brandur/brandur-support-pattern-properties

Support `patternProperties` when considering non-true `additionalProperties`