rowcache: use invalidator for masters also

This means that invalidator will always be enabled if rowcache is
enabled. So, there's no separate option to enable invalidator
any more.
All code that invalidated the rowcache as part of a transaction
has been deleted.
Since the invalidation is now asynchronous, there are situations
where there is a delay before it completes, especially for DDLs.
This required adding some additional sleeps to the queryservice
tests. Also, the querylog doesn't transmit invalidations any
more. So, removed that verification from the tests also.
For schema updates, there was a race between the code that reloaded
the table info and the invalidator. To avoid this race, the
code that reloaded the table doesn't do it any more. Instead,
it just triggers a Reload, which is allowed to race with the
invalidator.
I also found a possible deadlock between CreateTable and GetPlan
in schema_info. getconn->lock vs lock->getconn. This was resolved
by obtaining a lock upfront. Since this change makes the locking
more conservative, I've provided a fastpath for GetPlan to allow
for most queries to not be blocked on this lock.
Along the way, I also made some spot-improvements to schema_info.
Merge branch 'master' into rowcache
fix typo in timer
Merge branch 'rowcache'
Update docs for MariaDB support.
Fix BinlogStreamer for MariaDB.
Merge branch 'master' of github.com:youtube/vitess