API rework (WIP)

A possible API to make things more flexible

* Abstracted `RenderInterface` methods from the react JS render* naming.
* Supports returning markup with JS initialisation code via `renderMountedComponent`.
* `GenerateRenderRuntimeInterface` allows creating custom runtimes for your code specific to your JS environment, I have implemented an example generator for commonJS/bundled AMD runtimes.

Im pretty unsure about all the names of things here, but do feel they are looking in better direction.

Note: this code is not working and just has been changed enough to reflect a possible API