tests/testcases.py - improve test coverage by running server in thread

The coverage module doesn't really support instrumenting other
processes. Hence we run the server in the same process in a different
thread. The big disadvantage is that there is no clean way to stop
the process; we just declare the thread a daemon and hey presto it
comes crumbling down without cleaning up when the testcase ends.

Perhaps there's a way to send a signal to the thread to trigger a
cleanup? This would be ideal. For now thouse all tests continue to pass
and coverage is significantly improved.
log.py - stop checking internal test-only logging functions for coverage
tox.ini - add coverage of branches too

Helpful in determining if we've (obviously) missed branches from
coverage as well.