More app manifest validator rules

* Rules are now partially checked based on a simple schema definition.
* Implement rules for a few top level manifest properties: sockets, permissions, manifest_version, app.
* The "manifest.json" file of the IDE app validates without any warnings.

@devoncarew 
Good point. This code was originally in a different spot were the assertion was verified, but it might not always be true here. We can't really hit the condition currently because the only schema we use doesn't have object/array in arrays, but I changed the code to check for propertyName not being passed in, to be similar to String/Integer/EtcValueValidator.