Allow multiply output types and add new output type "ast".

Now `options.output` may be an array of supported output types. Output types is:
- `parser`
- `source`
- `ast` (new)

If output types are an array, `buildParser` returns object whose keys are array elements, and values -- the appropriate results of generation.