Implementing a TabletExternallyReparented action inside vttablet.

It does the same as ShardExternallyReparented, but since it's running
on the new master-elect tablet, it can do the slaveWasPromoted
action locally. Then it still tells the other tablets, which means
the vttablet binary now needs to be able to RPC to other vttablets.

This eliminates a bunch of error conditions where we can't talk to the
new master in the ShardExternallyReparented side.

Refactoring a couple things on the way:
- lockTimeout is now an agent global parameter, not just used by healthcheck.
- the flag to chose the tablet manager protocol can move to initiator,
  now that it is used by everyone who uses initiator.
Setting the dbname for filtered replication in the right spot.

Instead of setting it when we enable query service, since we don't
enable query service when filtered replication is on.
Merge branch 'master' into replication