JSON generator: output complete descriptors

The attached pull request contains some improvements to the JSON generator:
1. programs are no longer merged by default, use "--gen json:merge"
2. "index" is renamed to "key" for fields to match the compiler's internal naming
3. types are described in a way that does not require string parsing
4. full support for exceptions, unions, namespaces, includes and required/optional fields

Jira: THRIFT-2859