Vitess MapReduce: Create multiple splits per shard

Currently GetMRSplits creates one split per shard. This change allows
for further splitting within a shard for better parallelism in mappers.
Splits within a shard are created by appending primary key range clauses
to the shard level query.

Changes:
Added SplitQuery RPC to VtTablet
Modified GetMRSplits to accept SQL queries instead of Table and columns
GetMRSplits forwards the query to tablet for splitting via scatterConn
Unit tests
QuerySplitter: getSplitBoundaries should panic on bad min or max
Vitess MR: Multiple splits per shard in InputFormat