Refactoring lf.proc.Runner such that it can run different types of tasks.

Currently Runner is only running one type of task (serving a user query). With
the introduction of data-binding/observers, we need one more type that checks
whether any observed queries have been modified and re-runs these queries.

Specifically:
- Adding an lf.proc.Task interface and lf.proc.QueryTask subclass.
- Moving query execution logic within lf.proc.QueryTask#exec method.
- Modifying lf.proc.Runner such that it can serve any task that implements the
lf.proc.Task interface, not just QueryTask.
- Renaming and changing signature of lf.proc.Runner#exec to scheduleTask and
updating callers.
- Adding lf.testing.MockTask and using it to test Runner's business logic.
- Moving previous tests to query_task_test.js.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=79963283
Fix ValuePredicate binding bug when IN or BETWEEN is specified.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=80134931
Notifying observers of observed queries when changes happen.

Specifically:
- Adding lf.query.observe/unobserve according to spec.
- Modifying QueryTask to schedule an ObserverTask if necessary.
- Implementing ObserverTask which is responsible for re-running
observed queries and updating the observed result.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=80141066
Consolidate lf.query namespace exports into one file.
Fix lf.query functions not properly exported.
Fix lf.query functions not accepting signatures as specified in spec.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=80151653
Summarize feature parity to SQLite.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=80219234
Add CONTRIBUTION.md for contribution rules.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=80220598