Fixes for latest Haxe development version

It seems our type system is getting stricter, always good.
Fix for latest Haxe development

Not sure why this was an issue... moved the casts down.

Perhaps I need to file a bug on the Haxe repo...
Get JSON Result to use Haxe Json handling, rather than thx
Fix documentation formatting on Controller

Also minor change (non breaking) in ControllerMacros
Workaround for Haxe type system

(somewhere between 3.1 and 3.2 some version break without the explicit cast)
Fallback for the way to detect Map<A,B> changing between Haxe 3.1 and 3.2
Get unit tests passing for HttpCookie once more
Fix tests for TemplateData. Also fix toStringMap() type signiature.
Minor documentation corrections
Updates to ApiMacros. Preparation for better remoting.

For now, move to tink_macro ClassBuilder code style.
Add unit tests for emptying function bodies on the client.
Check return type and add appropriate metadata so we can handle at runtime.
Give compile time errors if there are not enough type hints.
Get RemotingHandler to wait for async operations to finish

Change how API return-type metadata works - use the EnumFlags int
Various fixes and cleanups for returnType metadata handling
Preparation for new remoting handling.

Includes async api calls in RemotingHandler, new UFAsyncApi<T>
class for creating proxies that use Futures not callbacks, and more.

Some unit tests written, more to come.

Should be mostly backwards compatible other than the error handling,
and remotingHandler.addApi() is now remotingHandler.addApiContext(),
and `addApi()` is for adding an individual API.
1.0.0-rc.6