Fix off-by-one on very large ach_get() wrap-around check
Avoid wrap-around messages in the channel buffer
Prototypes for transfer function put() and get()
Initial implementation and test of transfer function variations
Test transfer function that mallocs
Remove duplicate code

* ach_get() and ach_put() now wrap the transfer function variants
Small cleanup
Move implementation-level declarations to private header

* Types, constants, and macros for in-channel data are private
* Pipe protocol functions are private
Initial DNS SRV record resolution
Shell interface for DNS resolution
Use service subtypes a la RFC 6763