Modifying change reporting mechanism to also work without Array.observe.

If Array.observe is available it will be used, otherwise its functionality is
polyfiled, such that it is transparent to callers.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=82153995
Fixing index table initialization to respect bundled mode.

- Abstracting page retrieval logic outside of BundledObjectStore, by adding a
new retrievePageFn in the constructor.
- Adding new enum lf.backstore.TableType {INDEX, DATA}.
- Adding two retrieveFn implementations, one for DATA tables, one for INDEX
tables.
- Adding optional TableType parameter in Tx#getTable() signature, and updating
callers to pass the appropriate type (defaults to TableType.DATA).
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=82194090
Adding table alias capability.

Specifically:
- Adding new methods Table#as(), Table#getAlias() and
Table#getEffectiveName().
- Modifying BaseColumn#getNormalizedName to take into account whether
the parent table has been aliased.
- Creating new folder tests/schema and moving existing base_column_test.js.
- Adding new table_test.js

Aliasing a table is necessary for implementing self-table join in follow up CL.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=82274551
Updating TableAccessFull and TableAccessByRowId to respect table alias.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=82296493
MockSchema cleanup: Removing unnecessary member variables.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=82296791
Updating PushDownSelectionsPass to take into account table aliases.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=82338969
Implementing self-table join.

Specifically:
- Updating Relation#getField and setField to respect table alias.
- Updating JoinPredicate#appliesToLeft_ and appliesToRight_ to respect table
alias.
- Adding tests for all components involved, as well as end to end test.
- Updating docs.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=82372713
Fixing case where lf.tree.map did not produce the original tree structure.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=82374781