Log metric that produced exception

To help diagnose issues such as those reported in
graphite-project/graphite-web#282

Backport from 80d111f8a270c5272089c280366f44a36d905eb4 on master branch.
Adding the ability to reorder metrics via the composer

This adds a new button menu on the right panel and new menu to the target context menu.
Gives the ability to select X targets, and move them in unison up and down.
If you select exactly 2 targets, then you can also do an in place swap.
Merge pull request #618 from jcsp/fix-none-timezone

Fix issue #617: handle TIME_ZONE=None
Merge pull request #503 from justino/sortable_metrics_0.9.x

Adding the ability to reorder metrics via the composer
Merge pull request #446 from jamesjuran/carbonlink_exception_backport

Backport to 0.9.x: Log metric that produced exception
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.
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.