Do not count patternProperties as additionalProperties when additionalProperties is false

Added test that is pending in JSON-Schema-Test-Suite.  See https://github.com/json-schema/JSON-Schema-Test-Suite/pull/45

Refactored patternProperties validation into
validatePatternProperties().  Unlike other validate* methods, this one
returns a boolean as to whether any of the patterns matched so we know
whether we can override additionalProperties.