[xfrout3b] refactoring: pass socket obj to XfroutSession instead of fileno.

since the socketsession module creates an actual socket object, we can now
generally use the higher level class.

Also, since it's managed as a class attribute, it's not passed to
methods as a parameter anymore.  this is just a cleanup.
[xfrout3b] refactoring: extracted response building/sending into separate class.

The new class is TestXfroutResponder.
XfroutSession._reply_xfrout_query() is now named TestXfroutResponder.respond().
existing tests in TestXfroutSession were moved to another test class,
TestXfroutResponder in a straight forward way.
[xfrout3b] more refactor: moved error sending code to XfroutResponder.

as it's also a blocking operation.  test code is also adjusted and cleaned up.
some now-unused stuff was removed.
also added some more documentation.
Merge pull request #36 from bundy-dns/xfrout3b

Xfrout3b: extract time-consuming ops from XfroutSession