Added FileFormat base class and FileFormatManager

The FileFormat base class acts as the base for file formats, with the
CML and CJSON classes ported over to it. The FileFormatManager class
provides a singleton that handles runtime registration of file formats,
query, and delegation. Some initial testing adding for the new API.

Change-Id: Ic07ddb56ef621fc087ac16f35635861b328374e4
Make new instances of formats, added some error logging

Reponding to review comments, fixed up some documentation, line length
issues and modified public FileFormatManager API to return a new
instance rather than internal FileFormat pointers.

Change-Id: I94db762a0233e689243cd1d249139e72390b4656
Merge topic 'file-api' into master

8087ace3 Make new instances of formats, added some error logging
af776909 Added FileFormat base class and FileFormatManager