Reorganize the functional test hierarchy.

TcpMixin should really be TcpTests and should derive from
SubprocessTests as it requires access to the sock attribute.