Adds support for `patternProperties`.

http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.3
Adds a little bit more cleanup.