ENG-4096: optimize query only with GROUP BY on indexed columns (no WHERE, ORDER BY) to use IndexScan instead of SeqScan; moreover, apply SerialAgg on this IndexScan if it's unique.
ENG-4096: add test cases; use ParsedColInfo not groupbyExprs in ParsedSelectStmt to find the right index.
ENG-4096: remove unique check and change cooresponding test cases
ENG-4096: remove unnecessary unique index in test ddl; only apply this optimization when needed.
Merge branch 'master' into ENG-4096
ENG-4096: changes based on Paul's review.
Merge branch 'master' into ENG-4096

Conflicts:
	tests/frontend/org/voltdb/planner/TestPlansOrderBy.java
Merge remote-tracking branch 'origin/release-3.7' into ENG-4096

Conflicts:
	src/frontend/org/voltdb/planner/PlanAssembler.java
	tests/frontend/org/voltdb/planner/TestPlansGroupBy.java
ENG-4744, ENG-4096: do NOT re-use reAggNode for multiple plans; solve conflicts between these two tickets.
ENG-4906: add more test case and other minor changes.
ENG-4096: add one test case per jxin's feedback.
Merge pull request #818 from VoltDB/release-3.7

Release 3.7
Merge pull request #795 from VoltDB/ENG-4096

[release3.7] Eng 4096