improve documentation and export annotated functions
quench warnings
use cloneTChan instead of dubTChan in dupSession
remodel functions to expose STM actions rather than STM datat types

TVars and TChans expose the wrong interfaces (e.g. a user shouldn't be
able to add IQRequestTickets to the inbound channel or change the answer
recevied after sending an IQRequest).
add pullMessageA and remove Annotations from pullMessage
additional cleanups and documentation fixes