Fix concurrency problem for topology
Merge branch 'master' of https://github.com/youtube/vitess
Add ServiceContext to isolate internal and external ServiceManager APIs.
Allow ServiceManager function to return an error.
Don't retry slave connection at BinlogStreamer level.
Consolidate cases in parseEvents.
Deprecate ServiceManager.Wait() with extreme prejudice.
Handle the case where extra_env=None (e.g. with MariaDB).
Check for expected BEGIN statements and don't filter them by DB.
event_streamer: Made more resilient to errors.

event_streamer used to stop streaming on certain unrecognized
constructs. Changed all those situations to make it either increment an
error counter or transmit the error to the invalidator. This way, the
event streamer will not get halted permanently.
rowcache: improved handling of unrecognized statements

Moved the handling of unrecognized statements into a separate call
in query_engine. This allows query engine to make better decisions about
the table based on whether it's cached, etc.
I also found a bug in SchemaInfo.createTable: If a table with overrides
is altered, then the overrides need to be re-applied. Otherwise, things
will get very criss-crossed.
schema_info: symmetrically unset overrides on Close
binlog_conn_streamer: tweak timestamps, transactions

Many situations that were initially deemed as errors can happen. So,
it's better to accept them.
Also, we now transmit the timestamp as seen by the commit or rollback.
This will help more accurately track replication lag.
binlog_streamer: Treat naked statements as auto-commit

It's possible that naked statements are present without BEGIN/COMMIT.
So, let's treat them as auto-commit. This also means that the initial
statements we see will appear naked if the streaming was not started at
a transaction boundary, but it's not worth differentiating the two. The
most common case is a DDL that can show up as is.
binlog_conn_streamer: improved autocommit state change
event_streamer: standardize timestamp

Use transaction's timestamp for event streamer. It's a more reliable way
of calculating lag.
RowcacheInvalidatorTime -> RowcacheInvalidatorLagSeconds
Add benchmarks for file and connection binlog streamers.
Add event.DispatchUpdate() to update and dispatch an event in one go.
Generate change log events for MigrateServedFrom and MigrateServedTypes.