Refactorings, validators,

* Added JCValidators utility class for all data validation
* Added array and assoc-array validators
* Better error reporting
* JSON decoding now supports both assoc-array and object parsing
* JCKeyValueContent::check() now determines optionality by calling
  validator on default value

Change-Id: Ibaa1869c137cb850efeb32c3b1deb7310ca9f78e