expose global API functions and GSJS admin object via RPC
persist game object changes before returning RPC

* add option to RC.run to make it wait for persistence operations
  before invokoing the callback (relevant for RPC)
* renamed 'postReqCallback' to 'postPersCallback' (to better
  differentiate it from the callback passed to RC.run)
make server-side RPC handler more robust

* clearer error in case of invalid target objects and nonexistent target
  functions
* return null as result if target function returns undefined
* make sendRequest accept target objects by TSID (for easier testing)
* handle invalid 'args' parameter gracefully
add game server RPC API

* another RPC function 'gs', for functionality required by external
  components, but not already available through any of the existing
  RPC endpoints
* first function: getConnectData (for HTTP API function
  'client.getToken', and for the webapp to generate the flashvars in the
  game page)
* also, docs
make server-side RPC handler more robust

* Check if callback actually is a function. This is not the case in
  certain situations, e.g. when using the multitransport-jsonrpc lib
  with incorrect parameters on the client-side, and has serious
  consequences: multitransport-jsonrpc rethrows the resulting Error in
  process.nextTick, which puts it outside the RC Fiber, crashing the
  GS worker process.
Merge pull request #9 from yelworc/rpc-extensions

RPC improvements and extensions