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.
Well the *best* solution would be to define both strings as class constants, and simply refer to the constant:

```
$this->getGrammar() == $this::FMRESULTSET_GRAMMAR
```

```
$this->getGrammar() == $this::FMPXMLLAYOUT_GRAMMAR
```
And then you could search for everywhere the grammar is referenced as a string literal and change it to the class constant instead.