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
If we're reasonable certain the amount of processing will be small, I think it's ok to do the work on the DOM thread. It simplifies the implementation quite a bit. In this case, we'll just be processing a few fairly small files.