rowcache: add timeout for memcache

Memcache connections can hang under system duress. Adding timeouts
to make sure we can recover if stuff like this happens.
Also, connections are now closed if there is any kind of low level
error. This will allow the connection pool to replace them.
binlog_streamers: get rid of nested ServiceManagers

Nested ServiceManagers create unresolvable race conditions
on shutdown. It's better to have only one at the top level,
and we just pass its context down to all the dependent
services.
binlog_streamer: Simplified the APIs.

The binlog streamer API required too many closures nesting.
Turtles all the way down. Made some simplifications to
reduce this complexity and make the code more readable.
binlog_streamer: minor tweaks
Merge branch 'rowcache'
Merge branch 'master' into replication