Further modularised client and more comprehensive tests
Async testing framework and new server tests