More app manifest validatation rules

* Add validation rules for the following manifest keys: default_locale, current_locale, kiosk_enabled, kiosk_only, minimum_chrome_version, requirements, version, webview
* Add validation for "socket_host_pattern"
* Minor code refactorings
* Support for mandatory properties and "open-ended" objects in json schema definition
* Lots of tests

@devoncarew

Hmm... My reasoning was that this table will not change frequently and that, since we release a new version every month, a false positive could be easily and quickly fixed. But I see your point we should avoid false positive as much as possible, so I changed the code to do some basic format validation only.