Merge branch 'upstream' into develop
Allow manual axis ranges

Allows the user to set the axis range min/max.
Filter out off-screen bars

Prevents any data values which do not appear in the axis from being
drawn.

The BarSeries only work with ordinal axes at the moment, so this will
need updating when that gets fixed.
Update change log
Adds docs to axisRange
Fix for interactive axisRange

Sets the axis range initially, before defaulting to the d3 scale to
control zoom/panning.
Proposed updates to PR 241
Fix everything!

Now works for
- Ordinal axes: with a start and end of range as the category name
- Interactive axes: Starts initially zoomed to the range, but allows zoom
  and pan in/out without breaking ticks
- Filtering: An axis with an auto-range will scale to the new data size
  if that data is filtered.

We purposefully do not auto-scale a value axis if the key axis has been
range-filtered, in case the axis has interactions enabled, and also to
give an indication of the scale of the filtered data in comparison to the
overall dataset. The value axis can still have a range manually set if
need be.
Merge pull request #1 from niksoper/tom-develop

Update to Axis jsdocs
Fix unit tests

Removes the mocking, as we were no longer mocking the right thing. It
proves easier to assert that the axis range can be set than to try and
mock a collection of other things.
Fix missing axisRange on linear axes

We were defaulting to the axis findMax, which didn't take account of the
ranges we've set.

We now use rangeMinimum/Maximum (the functions overwritten by the
axisRange setter) when using our custom linear domain, defaulting them
to [0, axisStrategy.findMax(axis)] (as it was before).
Fix interactive linear axis

Default value follows the axisRange provided by the user, but then goes
back to using the scale.domain(), to let us do panning and zooming
properly.
Address review comments

Uses the common util method for arrayContains, and sets the domain on
the scale instead of the axisRange.
Fix the fix for fix fix fix.

Reverses the change from fce33ea which allowed interactive axes to change
their range (and remove tick marks appearing off the chart). That fix
broke the resizing of axes when filtering data on a non-interactive axis

We now have this working for both interactive axes and non-interactive
filtered axes.
Merge branch 'upstream' into develop
Apply namespace change (Utils => utils)
Add arrayEquals

Adds a method to check for equality between two arrays of values.
Javascript by default returns false for "['abc'] == ['abc']".
Add defaultDomain method

Specifies what the default domain is for time, linear and ordinal axes,
and hooks into the domainIsDefault() method.
Merge pull request #241 from tpkelly/develop

Manual axis ranges
Merge branch 'develop' of https://github.com/ScottLogic/insight into feature/deferred-data-loading