Add ExternalID parameter to TabletExternallyReparented.

This ID can optionally be provided by the external tool doing the
reparnt. The ID gets printed in logs to allow cross-referencing with
logs from the external tool.
Merge pull request #161 from youtube/tablet-externally-reparented

Add ExternalID parameter to TabletExternallyReparented.
Make topo server flavor pluggable in integration tests.
Remove extra copy of zk_setup().
Merge pull request #162 from youtube/topo-server-flavor

Make topo server flavor pluggable in integration tests.
Centralize common test options in one place.

There are now three different main() functions in our test suite.
Let's have them all get common options from one place, so we don't
have to remember to add new options everywhere.
Merge pull request #163 from youtube/test-options

Centralize common test options in one place.
add logging.debug to enviroment.run to print debug info
Small fix to test to make it more agnostic to topo server.
Merge pull request #164 from wangjild/master

add logging.debug to enviroment.run to print debug info
Deflake file open for framework.Tailer.

It might take some time for the desired log file to appear, even after
the process in question has started. We should wait for it so we're less
flaky.
Merge pull request #165 from youtube/deflake-tailer-open

Deflake file open for framework.Tailer.
Add missing import.
Making rpc_timeout_message part of the protocols_flavor object.

Since it depends on the protocol, really.
Convert worker to use tabletserver/tabletconn instead of using hard-coded BSON rpc
Merge pull request #166 from youtube/aaijazi_worker_tabletconn

Convert worker to use tabletserver/tabletconn instead of using hard-coded BSON rpc
Converting a bad value to NotImplementedError.
Merge pull request #167 from youtube/replication

Making rpc_timeout_message part of the protocols_flavor object.
Pass context.TODO() instead of nil.
Merge pull request #168 from youtube/nil-context

Pass context.TODO() instead of nil.