Add in Dispatchers.

Dispatchers are essentially a higher-order proxy for event listeners.
They namespace event registration, so multiple dispatchers can listen
for the same event on the same element.

This is part of the setup for better Interactions in the future.
Rather than create ad-hoc listening structures in each Interaction,
in the future Interactions should use Dispatchers to listen for
events and respond accordingly.

Currently there is only the base Dispatcher and Mouse Dispatcher, but
more will be added in the future.
Merge branch 'master' into add-dispatchers
Merge branch 'master' into add-dispatchers

Conflicts:
	test/tests.js
Improve documentation on mouseDispatcher, streamline tests.
Merge pull request #736 from palantir/add-dispatchers

Add in Dispatchers.