Implemented helpers to use std::shared_ptr on AngelScript objects

To avoid the semi-automatic AddRef/Release mechanism of AngelScript,
a few helperfunctions were added. Namely, two functions to create
std::shared_ptrs from plain pointers using a custom deleter which
just calls Release() on the object.
network::NetworkServer: Replaced seconds() with milliseconds()

I was wondering why timers either timed out extremely fast for
moderate (sub-second) periods and appropriately slow for long
periods.

Turns out boost::posix_time::seconds expects integer seconds,
so the fix was using milliseconds(1000.0 * PERIOD).
NetworkServer::sync(): Flush object update cache

Sync() did not flush the object manager cache, therefore always
sending full serializations of objects even if they were neither
new nor actually updated.
AngelScript smartpointer bugfix: SIGSEGV when null-shared_ptr destroyed

The smartpointer created for AngelScript reference counted objects
crashed the program if it went out of scope while containing a
null-pointer reference.
Added more AngelScript add-ons and imporved AS debug function

* New AngelScript-Addons are registered on engine creation.
* A single, shared context is now used in the application
* The debug() function now supports setting the verbosity level
  and matches the nDebug-system visually.
Exposed API to create GameObject from AngelScript

Using the global gameObjectCreate function a GameObject, linked to a
certain AngelScript class can be created. Another function is used to
remove the Object from the ObjectManager, releasing the reference to the
AngelScript object. The object will not be rendered and noticed from the
(C++) application, the AS object will be destroyed as soon as all AS
references are released (of which shouldn't be any, anyway).
Implemented RPC subsystem

Both C++ and AngelScript functions can be added as RPC handler. In AngelScript,
a global function can be used to register functions and object methods,
listening to certain RPCs from specific clients (e.g., a single client or
all clients).

The available RPCs are listed in a file in the campaign directory (rpc.tab),
in white space separated format. Each registered RPC can be called via a
global RPC dispatcher object by calling a method. So, to call sendTestRpc,
you just write rpc.sendTestRpc(RECEIVER_ID, [args]).
Added new RPC system code to the test campaign
Started implementing RPC and client negotiation in NetworkServer
NetworkServer: Subscribe to SIGINT and SIGTERM for graceful exit

The server can now be gracefuly stopped by pressing Ctrl+C in the
console.
Started implementing test game client (w/o graphics)

Updated for the latest RPC system changes etc