Make unittests more resilient if setup fails gracefully
ThriftHandlerTask verifies MODULE.Iface is implemented

In initTask(), ThriftHandlerTask will now verify that it implements all
the methods on MODULE.Iface.
Fix test failures from fb303 implementation breakage

Now that we verify method implementations, this test is failing since
our fb303 handler doesn't implement getCpuProfile.  Let's implement it

Fixes #17
TServerSocket API compatibility with fbthrift
Improve support for v6 thrift hosts.
Updated CHANGES for recent changes
Better support for multi-TServerSocket

Some thrift implementations have support for multiple handles per
TServerSocket.  Let's use that API if the old ones are not available.
fb303.getCpuProfile takes a duration in seconds as a parameter.
py3k fb303 compatibility

Even though thrift doesn't support py3k, let's use six's iteritems
instead of iteritems directly.
ExportedValues API

This is a popular API like counters, but for arbitrary data.

The current implementation is only on VService, but I could see this
being useful to be implemented more like Counters.

That said, I'd like to clean up the counters/options/etc implementation
before introducting other things that might look more like them.

Test Plan: Added some new unittests to test_vservice to make it work
properly.
initial work to support daemonization in sparts.
now daemonizes, but there is no action being run
Daemonize takes an arg called action, which appears to be a main loop
for your daemon, but that is already handled by the code, daemon or no daemon
needed *x, not x, as the lambda was getting 0 args when it was expecting 1
--kill now works, save for an extra "Starting server" message
new dynamic default pidfile
a few changes to the killing code based on suggestions from @fmoo
replace lambda "no-op" with a call to functools.partial that will handle this better