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.
I was originally throwing an exception here, but later chose to validate the choice of grammar in the setGrammar method. I think that it's impossible for this method to be called with an invalid grammar property. Still add else and throw?