Let parser generate null for missing integer fields

Integer tokens were generating java type 'long', returning 'Long' instead lets the parse tree contain null instead of zero for missing int values. This change enables existing code in the generator that fails on fields in thrift structs or parameters on thrift methods that don't have explicit identifiers.
Fix generation of enums using implicit values

If some or all of the values in an enum are not explicitly numbered, they should count up from the last explicitly numbered value (or from zero if no explicit value was seen yet).