Fix bug in live-service-usage graph rendering.

We were checking for the existence of the collection before
rendering the template HTML for live-service-usage graphs.

Unfortunately, this got us into an occasional race condition
between templateContext and initialize, so sometimes the
graphs weren't rendering.

The template check isn't really useful anyway, because we
don't have error handling in the collection yet, so the
graphs will probably break before this point if there is
no data in the collection.

So: remove this check from the template, and remove
templateContext from the view.
Remove unnecessary test
Only render periods if we actually have some previous period data.

This is useful for rendering single stat type values through a kpi template.
Added waste carrier total registration using the kpi module
Check for values in period and conditionally check for that in the template.
Merge pull request #322 from alphagov/feature/total-registratioations-waste-carriers

Feature/total registratioations waste carriers
Merge pull request #319 from alphagov/bugfix/live-service-usage-not-rendering

Fix bug in live-service-usage graph rendering
Share module rendering and merge view options

We are going to want to share the rendering of modules beyond just the
dashboard controller. The new tab module is built around the idea of is
containing another level of module definitions.

We want the options we pass through to render ending up on the view such
that we can pass through useful properties like, which element to render
into from elsewhere.
Module should expose its visualisation

We need to be able to get at the visualisation contained by a module and
to include such implementation specific code such as
thi.viewInstances['.visualisation'] seemed like madness.
Add TabView

TabView manages the tabs, elements for the different modules to render
into and binds events to swtich between the tabs on click.
Add a TabModule and link it in controller_map

Create a TabModule which uses TabView and the shared module rendering
code to populate the TabView.

We require controller_map as it would create a circular dependency if
placed in the define as TabModule -> ControllerMap -> TabModule.
Styling to work with new tabs
Add new tabs to no-realistic-dashboard
Lint fixes
Added a basic schema for tab modules to allow tab modules to generate json stubs
Listen to model.change event for tab change

Listening to change events on the model allow multiple disparate modules/views to perform tasks on tab click and have awareness of tab state without needing to create a coupling between them.
Fix unit tests
Fix page-per-thing tab view
Implemented new style tabs on g-cloud dashboard
Update availability modules to use new tabs module