Fixes to the thrift IDL

Hey,
I've added some missing bits to the existing IDL to keep it up to current spec:

* Typedefs can be any FieldType
* Ive added annotation parsing support for most fields.

I've more or less copied these as closely as possible from the authoritative YACC file (http://svn.apache.org/viewvc/thrift/trunk/compiler/cpp/src/thrifty.yy?revision=1386848&view=markup&pathrev=1386848)
Ive never dealt with grammar kit before, so its possible I'm missing bits. Certainly I think I could add recover code in parts.