Preserve FTys provided in FFunction and FAny -- useful for backend FFIs

This branch provides the types specified in the Idris FFunction and FAny constructors to the equivalent Haskell-side  constructors. There are no changes visible to Idris users.

I've been doing some experimenting with callbacks from type-checked backend languages and have found the need to preserve this type information.

Not that this is a minor breaking change for the non-built-in backends, which will simply need to ignore this extra information (as done for CodegenC and CodegenJavaScript in this branch).

If you need to see how these changes are used, please see my [C++](https://github.com/andyarvanitis/idris-cplusplus) and [Go](https://github.com/andyarvanitis/idris-golang) backends. Thanks!