Encapsulate rpc server's client stream.

Add a dummy 'game_waitforblock' method that only sleeps for now, and
encapsulate the RPC server's client streams into a new class that can be
used in the future to persist the streams in new threads for
asynchronous RPC calls.

Conflicts:
	src/bitcoinrpc.h
	src/namecoin.cpp
Implement async RPC calls.

Implement async RPC method calls that spawn a new thread waiting to
finish them.

Conflicts:
	src/namecoin.cpp
Add comment about fShutdown in RPC thread.
Move check for RPC server shutdown.

Move the check for RPC server shutdown above accept call, so that it
does execute when stop() was called.
Catch exceptions correctly in async RPC calls.
Remove superfluous #include from merge.
Add stub for waitforblock async call.

Add a new "waitforblock" async RPC call, that currently just sleeps for
some time instead of doing actual things.
Implement waitforblock RPC call.

Implement the body of the waitforblock RPC call, but the condition
variable introduced is not yet notified when new blocks actually arrive.
Actually notify threads waiting on new blocks.

When a new block has finished processing, notify all threads waiting on
the condition variable about it so that waitforblock now fully works.
Merge branch 'namecoinq' into async-rpc
Merge branch 'namecoinq' into async-rpc
Merge pull request #60 from domob1812/async-rpc

Port over async RPC calls from Huntercoin, implement "waitforblock" RPC call.