Rules and operators to implement windowed aggregation.
Add one extra column and one extra row to the Employee test data set.
Progress.
Code compiles now, and existing tests succeed.
Explain for window query now works.
Update log.
When building expressions using linq4j, use varargs method over iterable method wherever possible.
Progress on code generation for windowed aggregation. Fix 2 bugs in type derivation of windowed aggregates.

Cleanups: call "BigDecimal.valueOf" rather then "new BigDecimal()" whenever possible; migrate an array to an immutable list in SqlTypeStrategies.
Define the ORDER BY key of a window using RelCollation. Make RelCollationImpl immutable.
Windowed aggregation now works, including adding a project to permute fields, and code generation to calculate aggregate functions.

Other work:
1. Rename RexWindow.physical to .isRows, ditto WindowRelBase.Window.physical.
2. Make some fields of AggregateCall public.
3. Obsolete WindowRelBase.Partition. Window now contains both partition and sort info.
4. Partitioning key now represented using BitSet, like AggregateRel's groupSet.
Upgrade to linq4j-0.1.8. (Enables some short-cuts, and fixes a bug in "COUNT ... OVER".)
Implement windowed aggregation with multiple windows, ORDER BY ... DESC, and the RANK() function. If a window's PARTITION BY key is empty, optimize by not creating a map.
Now generation of float literals is fixed, remove workaround in unit test.
Fix ORDER BY ... DESC NULLS FIRST.