Fixing ValuePredicate#eval to work in the case of previous joins.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=78097722
Update BUILD file of demo/moviedb so that MOE can export it correctly.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=78097871
Fixing JoinPredicate to work with already joined relations.

- Removing lf.Row.combineRows() and replacing it with
lf.proc.RelationEntry.combineEntries. The latter takes into account that
entries to be combined might already be results of previous joins.
- Fixing dereference of row attributes in JoinPredicate#evalRelationsHashJoin
and evalRelationsNestedLoopJoin to take into account whether the row is already
the result of a previous join.
- Removing lf.Predicate#evalRow. The function was never used outside tests. Those
tests were migrated to test lf.Predicate#eval instead.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=78105120
Implementing N-table join where N > 2.

Specifically, adding CrossProductPass which breaks down a
CrossProductNode to more such nodes such that each node has
exactly 2 children and hooking up the new pass to the
LogicalPlanGenerator.

Join ordering is not optimized yet, it will be addressed in follow
up CLs.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=78133542
Provide alias for select columns (the AS keyword in SQL).
Change the way aggregated columns are named. They are named as
function(column) instead of function_column to be more consistent with SQL.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=78180441
Fix CSS issues in demos/moviedb/demo.html.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=78191528
Fixing case where IndexRangeScanPass was erroneously dropping nodes from the tree.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=78198059
Implement Cache.getRange to get multiple rows based on row id range.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=78204784
Fixing demo breakage caused by renaming aggregated column output format.

-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=78211811
Add lf.backstore.Page class to represent bundled rows.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=78219512
Fixing generation of physical DELETE query plan to not drop predicates.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=78267740
Stop mutating QueryContext when generating logical plans.

Specifically:
- Adding a new lf.Predicate#copy() interface method and implementing it
from ValuePredicate, JoinPredicate, and CombinedPredicate.
- Modifying {Select|Update|Delete}LogicalPlanGenerators to copy any predicates
in the original QueryContext before using them in the generated tree.
- Adding tests (and necessary missing infrastructure in MockEnv).
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=78287500
Add "Bundled" mode to IndexedDB backstore.

Bundle mode will bundle 1024 logical rows into a physical row (called page) to workaround overhead caused by number of rows due to IndexedDB spec design flaw.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=78294458
Expose bundled mode to schema definition and honor it.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=78314796
Fixing CrossProductPass to properly break down CrossProductNodes.

In cases where the original CrossProductNode had 4+ children, it was failing to
transform the tree such that at the end each CrossProductNode has exactly 2
children.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=78357088
Fixing lf.tree.map to correctly replicate the original tree structure.

In certain cases the resulting tree did not have the exact same
structure as the original one. The previous unit test was not catching
this error because it was checking that the in-order traversal was
visiting nodes in the same order, instead of actually comparing the
entire tree structures.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=78362691
Add CRUD test for bundled mode database.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=78364418
Merge