Fix 'now' handling in render queries

Previously, datetime.now() was called more than once
when rendering data.  This led to non-deterministic
selection of sample resolution.  For example, if
the schema is 60s:1d,300s:7d, and a request for
'-1d'->'now' came in, one would sometimes get
the 300s data and sometimes the 60s data, depending
on the length of time between the call to now() in
render.views and the call to now() in whisper.fetch.
Add 'json-array' format

This provides an array of (x, y1, y2) tuples
instead of multiple arrays of (x, y1), (x, y2)
tuples.  It is efficient (the timestamp
is not repeated) and convenient for use with
the dygraphs library.
Enable serving graphite.dashboard app outside root

Previously, serving dashboard app from anywhere but
/dashboard/ would break things because there
are hardcoded absolute paths in dashboard.js.

This change adds settings.GRAPHITE_API_PREFIX, to
allow use of the dashboard app at some other place
in the URL namespace.

This is useful if we want to deploy graphite along with
other WSGI applications, and use a /graphite/ prefix
to namespace it away from other apps.
Fix json-array rendering when no data is found