Add: Pooled resource message daemon base class

This class makes it easier to implement message daemons that use
pooled resources like threads, greenthreads, and processes without
needing to write entirely new run() methods.

Signed-off-by: Kevin Conway <kevinjacobconway@gmail.com>
Change: Run method to support better testing

The previous run method was overwritten in each class extention.
Every extention maintained its own 'while True' loop and coupled
that loop with the daemon behaviour.

Splitting the loop from the loop body allows for both better
subclassing and testing. Subclasses can simply implement the _step
method rather than the whole loop. Tests can now step through the
daemon process one part at a time instead of starting an infinite
loop.

Signed-off-by: Kevin Conway <kevinjacobconway@gmail.com>
Add: More base daemon tests

The base daemon now has basic acceptance and integration tests.

Signed-off-by: Kevin Conway <kevinjacobconway@gmail.com>
Add: Tests for message and pooled daemons

Signed-off-by: Kevin Conway <kevinjacobconway@gmail.com>
Merge pull request #9 from kevinconway/more_tests

Add: More tests for daemon subclasses