Major refactor simplifying and abstracting most components

* Refactored widgets in to a single widget that uses data attributes
  on the dashboard elements to determine which metric to get from the
  New Relic API and the limits for changing colour of the widget.
* Move logic for dealing with the API etc in to a new class, greatly
  simplifying the jobs.