Typescript bindings

The Minsky project embeds the C++ code as a node addon. A custom descriptor is provided to generate Typescript binding that follow as much as possible the C++ type system, to allow compile time checking of the use of the reflection API. Most of the code can be found in the RESTService/addon.cc file, but it is complicated by the need for threading to avoid blocking the node calling thread, callbacks into node and general Node API set up.