Alternate Retry Transport

Relating to #12 - this approach parameterizes the customization and offers a DefaultRetryer with some sane defaults.

Full tests need to be worked through.
EOF should only retry on EOF and not bother about other errors (wether to retry when there is no error is another question, but thats a good example of how crooked this design is. we know when to retry, but not when to stop ...)