Adding timeout support in VTGate
Fixing all bson encoders to support extra fields.

In the process, fixing a bug in '*Session' decoding,
where a field with a 'bson.Null' kind would fail.
Merge branch 'master' into replication

Conflicts:
	go/vt/topo/srvshard_test.go
Adding ShardRemoveCell command.
Merge branch 'master' of github.com:youtube/vitess
Merge branch 'master' into replication
Merge branch 'master' of github.com:youtube/vitess
Categorize upserts as PASS_DML

Upserts are not safe for statement based replication:
http://bugs.mysql.com/bug.php?id=58637
So, vttablet now categorizes it as pass-though DML,
which will eventually get rejected because of
update stream & rowcache.
In the future, we can allow a 'dumb mode' where
PASS_DML plans are allowed if people don't care
about rowcache or update stream.
Addressing comments from review.
Merge branch 'master' into replication
Add comment about why upserts are unsafe
Merge branch 'monitoring'