Add Cache and Prefetcher DD.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=80240642
Re-using code between QueryTask and ObserverTask.

Specifically:
- Extracting a superclass out of QueryTask.
- Moving remaining QueryTask logic to UserQueryTask subclass.
- Making ObserverTask a subclass of QueryTask and renaming to
ObserverQueryTask.
- Simplifying constructor of QueryTask to only expect an array of queries.
Before it was also expecting an array of PhysicalQueryPlan instances which
was redundant.

With this design the core logic of executing a query resides in a single place
in QueryTask, which exposes a protected onSuccess() method that subclasses can
override as needed.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=80242672
Adding design document for query engine.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=80245896
Add design doc for transaction management.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=80247216
Add lf.schema.Table.getSchema method.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=80247588
Add design docs for indices.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=80250318