use a single test file for all issues
Add test case for #8

Seems that C++-only code does not have the same issue in Python-ext.
py-ext: dont wait when destroying rpc server

The ~Server() function is potentially blocking. This could lead to
the following situation:

1. The server is serving a long running request R from client C.
   R is served in a thread T2, while server runs in thread T1.
2. Client C timedout waiting for R, and disconnects.
3. Later, the server tries to shutdown before R finishes.
4. Server calls _fini_server(), which grabs GIL, and waits for
   currently 'alive' connection of R to close.
5. R finishes, trying to get GIL, but fails to do so since server
   is holding it.
6. Because R cannot finish replying the RPC, the 'alive' connection
   of R will not be released.

Now we have a deadlock:

* Server waiting for connection to close
* Connection wait for R to reply RPC
* R wait for the GIL held by Server

So now a simple solution is to run ~Server() in a separate thread,
so it will not hold GIL, and the deadlock link is broken.

This fixes #8.
Merge branch 'issue-8'