Add scheduled query precompute functionality

The Jia UI now provides a timeframe interface, where the user specifies either a recent timeframe:
![screen shot 2014-07-15 at 11 06 58 am](https://cloud.githubusercontent.com/assets/1996521/3586576/ba488dce-0c31-11e4-9967-b29e3dad75f6.png)

or a specific date range:
![screen shot 2014-07-15 at 11 07 16 am](https://cloud.githubusercontent.com/assets/1996521/3586577/ba48ca1e-0c31-11e4-9c6f-909f742ace17.png)

The `start_time` and `end_time` variables are automatically injected into the scope of the query code blob (along with `events` and `kronos_client`).

When the precompute switch is activated, the results of the query code blob will be cached. When the query is over a recent timeframe, additional options are provided to the user so that the precomputation will happen on a schedule. This ensures the cache is always fresh when a user runs the query. When the query is over a specific date range, the precomputation is done only once.
"If you are aggregating events, pick a bucket width that is equal to or a multiple of the timeframe you are aggregating on.  For example, if computing a 5-minute average, computation should be bucketed in intervals like 5 or 10.  Picking non-positive or non-integer multiples of the bucket width will cause incorrect results."