v3 proto: UpdateEqual, and a change in Generate

UpdateEqual plan execution is implemented.
Also, if we use Generate, we need to return the generated
value as the last InsertId.
v3 proto: add subquery for delete plans

For owned indexes, we have to know which rows are going
to be deleted so that we can delete the corresponding vindex
entries. So, deletes need to run a subquery to identify
these rows. An empty subquery means that the table does
not own any vindexes.
v3 proto: delete execution, still need tests
v3 proto: sandbox_test tweaks
v3 proto: more sandbox_test tweaks
v3 proto: delete end-to-end tests
v3 proto: LookupHashMulti vindex
v3 proto: reduced uint64 proliferation
v3 proto: NumKSID numeric keyspace id vindex
v3 proto: add support for KEYRANGE in parser

In order to support split queries for map-reduce jobs,
we need a way to send queries to specific shards. But
we cannot assume that there will be physical keyspace_id
column in the table, which will prevent us from specifying
a keyrange on it.
So, we introduce the KEYRANGE construct which is a boolean
expression that VTGate can use to match the range to a set
of shards. Since the construct is not understood by VTTablet
or MySQL, VTGate will also strip the construct before passing
the query down.
v3 proto: keyrange tests for plan building
v3 proto: delete deprecated_router
v3 proto: keyrange end-to-end tests
v3 proto: SelectIN execution and end-to-end tests
v3 proto: SelectScatter
Merge branch 'master' into vtgate

Conflicts:
	go/vt/vtgate/router_test.go
	go/vt/vtgate/scatter_conn_test.go
Merge pull request #241 from youtube/vtgate

Vtgate