modify to support multiple grammars, add fmpxmllayout grammar

The approach taken was to convert the execute() method to route based on grammar and to move all of the parsing into grammar specific parsing methods. Also added an array property to validate that a supported grammar has been specified. fmxmlresult is the default, to support backward compatibility.
This looks fine. It would be really helpful if you could add a sample of raw xml for the grammar, which includes an example of everything the grammar supports in here: https://github.com/soliantconsulting/SimpleFM/tree/master/tests/SoliantTest/SimpleFM/TestAssets so we can update the Mock loader and make unit tests for this parser.