Inittial end-2-end implementation of a builder for "manifest.json" files.

This change contains mostly the infrastructure to enable validating the content of "manifest.json" files. There are many more rules to implement (in later changes).

The intermediate JsonValidator library should be re-usable for other json based builders.

There is also a need to enable more precise testing of the error messages produced.

Note that there is an issue with initial validation (no errors appears until the file is changed in the editor). I don't think it is specific to this particular builder, as it seems Builder.Build is not called when a file is initially open in the editor. I will investigate further.

@devoncarew
I agree it is not urgent to move this to a Service for now, although
* In general, I am a bit paranoid about leaving parsing code running on a "UI" thread (i have been bitten a few times :))
* In this particular case, I actually recently heard that some Chrome Apps/Extensions use their "manifest.json" as a dumping ground for random json data (and Chrome does not prevent it for forward compatibility reasons afaik).