jeffjiang: add cfgclient and customruleclient interfaces so that custom rule and other configurations may be retrieved from plugin mechanism and Zookeeper-like services
Merge remote-tracking branch 'upstream/master'
jeffzjiang: split QueryRules into three namespaces
jeffjiang: split current mixed QueryRules into three isolated ones
jeffzjiang: fix style issues
jeffzjiang: fix style issues
add synchronization to SqlQuery.GetQueryRules/SetQueryRules to avoid race condition
jeffjiang: split query rule informations from SchemaInfo into QueryRuleInfo structure
jeffjiang: split query rule informations from SchemaInfo into QueryRuleInfo structure
jeffjiang: fix code styles and add sanity check for QueryRuleInfo.SetRules
jeffjiang: fix customrule test such that it can detect failure to match custom rules
jeffjiang: add test for QueryRuleInfo, fix existing QueryRule test and add sanity check for QueryRuleInfo.GetRules
v3 proto: end-to-end test for select & insert
v3 proto: VCursor interface for lookup queries

Vindexes need to be able to execute queries to access
their associated tables. So, we add a VCursor interface
to all functions so the vindexes can use them. VTGate
is responsible for creating a VCursor compliant variable
and pass it down.
v3 proto: execution for Unsharded plans
v3 proto: vcursor and insert half done

Changed router to implement and use requestContext,
which also satisfies the planbuilder.VCursor interface.
Changed insert to do the right thing for the primary vindex.
v3 proto: end-to-end test for insert primary
v3 proto: lookup hash unique index and handling of non-primary indexes for inserts
v3 proto: insert router unit tests
v3 proto: insert end-to-end tests