Fix Source for Interaction Events Dispatched from ScrollList

Problem
-------

ScrollList interaction events (started, each, and finished) are dispatched from the list map regardless of scroll mode. This leads to bad dispatch timing when in `peek` or `single` mode, where animations for swipes and boundary enforcement can lead to delays in an event "finishing".

For example: a swipe interaction generates a touch, a series of drags, a synthetic "swipe" and a release event. The list map for the current item ends up playing out an animation in response to the swipe event. However, the DOM event bubbles to the list map, which does nothing for the swipe, leading to immediate dispatch of the swipe and release events. Consumer who rely on ScrollList#onInteractionFinished have subscriptions invoked before the actual user interaction "finishes".

Solution
--------

Tie the dispatch of the relevant ScrollList events to the current item map, rather than the list map.

Unit Tests
----------

Added and cleaned up existing test a bit.

How To +10/QA
-------------

- Travis should pass.
- In consuming code, ensure that scrolling still works correctly.

@lancefisher-wf @robbecker-wf @patkujawa-wf @georgelesica-wf @tomconnell-wf @todbachman-wf 

Attn: @davidmarne-wf @jonmccracken-wf