add package documentation
rename do() => connect()
simplify error handling in Read()
specifically only retry for 5xx statuses

This should handle other weird codes that might come out as opposed to
specifically handling only 4xx statuses.
docs
backoff docs
add license