Fix line label hover states

Handle hover state on line label area in the line label component itself, rather than extrapolating from the end of the lines.

Simplify the case where line labels have links sitting on top of the hover component. Body handler to deselect will already exist from the main graph hover component, so doesn't need an additional re-binding.
Highlight the last point with data on a line when hovering a line label

DRY out the event handling code a little, so the label link hover handler and `onHover` use the same method to select collection items.

Test against a spy on `Collection#selectItem` instead of the side-effects of that method to avoid testing too much of the collection internals.

Have to allow the label positions to be set to set-up the tests, so need to pass a bunch more stub config in.
Merge pull request #661 from alphagov/bugfix/line-label-hovers

Bugfix/line label hovers