Exposing API for easily parsing the MGCB format

The goal in this change is to allow other tools to understand the MGCB format by exposing PipelineProjectParser.
Most of the file changes below are removing unnecessary references to the IController type, which is something very specific to the PipelineTool, and cannot be made public.
Note that this PR does not in any way affect the behavior of the PipelineTool. All that happened was three classes went from internal to public.