Amend graph.js to handle datasets in which all data is null.

Set a default max value in calcYScale to handle the case in which
all data in a dataset is null.

Previously, without a default max value, graphs in which all data
was null would throw an error when trying to calculate this scale.

Now the graph will show 'no data' on all its points, and the y-axis
will be set to a small default value.

This is needed for the new bar_chart_with_number module, which has
explicit designs for graphs in which all data is null. Plus it
seems generally beneficial that graphs should cope with all-null
datasets.
Amend formatPeriod to handle date strings correctly.

If passed date strings, convert both start and end dates to
Moment dates. Previously the code only converted end dates.

This is needed for the new bar_chart_with_number module, since
our data doesn't always have explicit start dates set in
Backdrop, and we have to handle this gracefully.
Add new bar_chart_with_number module to no-realistic-dashboard
Create shared bar chart code for both journey and new bar chart modules.

Since journey graphs are also a type of bar chart, it makes sense for
our new bar_chart_with_number module and the existing journey modules
to inherit shared code wherever possible.

Create a new 'bar-chart' directory, and move the existing bar.js and
x-axis.js views into this directory. Update these files to show
appropriate time labels for bar_chart_with_number graphs (which will
always have axis-period specified, unlike the journey module).

Create a new 'bar-chart.js' file and modify 'journey-graph.js' to inherit
from this. (I think it makes sense to do it this way round, since journey
graphs are a special type of bar chart.) Update tests for this file.
Add test for bar_chart_with_number collection.

This module needs to define the _start_at date for the period
specified in axis-period, since Backdrop doesn't return any
_start_at field for us.

Also, as specified in the story, it needs to clip longer
datasets to a maximum of 5 items.

Test this functionality.
Add bar_chart_with_number module.

Add module, collection, view and template files for our
new module.

We expect 'axis-period' to be specified on this module,
since it is always a time series (by default, we set it
to 'week). We use the axis-period property to define
the start_date set in the collection, and the labels shown
on the chart.
Add new 'most recent number' view.

Our new bar_chart_with_number module has a subview which displays
a large headline number for the most recent item in the dataset
which has non-null data (as specified in the design).

Add this view, and add tests for this functionality.
Add tests for currently untested code.

The existing journey module was using untested code to set up the x-axis.
Fix this and also test our new functionality.
Fix JSHint errors
Share bar chart styles between journey and bar

We should share the same hover styling between all instances of the same
type of graph. Previously they were specified soley for the journey
module. I've pulled them out into the shared graph styling. Due to
x-axis element being adjacent to the element with class '.bar' we have
to do the text highlighting on a per module basis.
Bar.text should protect from undef and NaN too

Null is not the only value that can end up in text() if there is no
data, more commonly it seems to be undefined. I've written some tests
around this fn and made it a bit more flexible in what it considers to
be 'no data'.
Merge pull request #396 from alphagov/feature/bar-chart

Add bar chart to show transaction volumes over time