[FLAPI-28] [FLAPI-42] Adds parameterized types to Flapi. Return types and method parameters can now support type parameters.

This exposed an issue in javac which seems to indicate that a method either supports generics in both parameters and return type, or neither. Therefore the $ and top level interfaces had to be changed to Object explicitly. It's dumb, but filing a bug report with Oracle is too painful to bother with.