Convert Unused(Request|Response) from string to struct{}.

The use of string as the Unused type prevented methods from adding new
optional args or replies that were previously Unused, in a
backwards-compatible way. The BSON library will return errors and the
RPC layer will refuse to invoke the method on the server.

Changing the Unused type to struct{} will allow Unused args or replies
to be later changed to real, non-empty structs without breaking
compatibility during the transition. However, this must be done in two
steps:

1) Change Unused from string to struct{} (this commit). During this
transition, servers and clients can talk to each other regardless of
whether they've been updated yet. However, you can't yet add new
optional args or replies that were previously Unused, as explained in
unused_test.go.

2) After all deployed servers and clients have been updated at least
past step 1 (this commit), it will be safe to replace Unused with
real structs at any time.
Skip auth checks for internally-initiated queries (which will have context.Background as a context).
Merge pull request #152 from plobsing/internal-queries

Skip auth checks for internally-initiated queries (which will have conte...
Merge pull request #151 from youtube/rpc-unused

Convert Unused(Request|Response) from string to struct{}.
Add adapter interface for tracing libraries.
Add tracing in rpcplus and other places downstream from tabletmanager.

The goal is to start getting useful traces out of tabletmanager.
To start, we trace outgoing RPC calls on the client side.
Certain high-level TopoServer operations are also traced at this point.

To facilitate tracing, I've begun plumbing Context through tabletmanager
and all its users. At this time, it is simply a few regexes adding the
parameter so it can be used by tracing; no timeouts or cancellation are
using Context yet. Those use cases will require more careful
consideration.

Other than tabletmanager, most callers use context.TODO() since they
aren't plumbed yet.
Not delaying auto increment columns by default any more.

It is still possible to do it by adding 'delayAutoIncrement' to the strategy.
Also adding unit tests for this method, they are needed.
strategy for splits is now a structure with better parsing.
Better default value for strategy on web page.
Adding an easier way to get the possible strategy flags.
Fixing strategy parsing and worker unit tests.
Fixing test case after Ammar's comments.
Merge pull request #155 from youtube/replication

Not delaying auto increment columns by default any more.
Merge branch 'replication'
Merge branch 'master' into resharding

Conflicts:
	go/vt/mysqlctl/split.go
	go/vt/worker/split_clone_test.go
Couple cosmetic changes from review.
Fixing a double error message.
Merge pull request #156 from youtube/resharding

Better parameter parsing for strategy.
Merge pull request #154 from youtube/tabletmanager-context

Add tracing in rpcplus and other places downstream from tabletmanager.
v1 of writeMastersOnly strategy for split_clone workers