Implement timed versions of recv and getResponse

The timed versions of these functions take a timeout
parameter, indicating how long to wait for a single line
of the response before giving up (throwing RecvTimedOut).
Note that the overall operation of receiving the response
is not timed.
By default we wait forever.
Requests as Text
MPD: expose timed getResponse
MPD.Internal: enable line buffering for conn handle
MPD.Internal: code golf manager operations
MPD.Internal: assume flush is unnecessary with line buffering
Merge branches 'line-buffer', 'text-request', 'timeout' and 'refactor-manager'