Handling points from outside of domain in Ordinal scale.

Close #1135.
Y Scale domain adjustment algorithm.

Add API endpoint to provide custom y scale domain adjustment algorithm based on new x scale domain.

Close #1079.
Change algorithm signature. Mirror functionality for second domain.
Remove onlyShowUnchanged from formatters
Reduce duplicated code.
Remove _userSetDomainer check.
Introduce show all data and adjust domain to visible poitns.
Fix tslint issue.
Merge branch 'develop' into 1079_autodomain

Conflicts:
	plottable-dev.d.ts
	plottable.d.ts
	quicktests/list_of_quicktests.json
Fix jsdoc and naming.
Fix naming.
Add stronger typing into the core logic.
Enable max and min for non-numbers but comperable types.

Conflicts:
	src/utils/utils.ts
Fix test message.
Make max and min more generic.

Conflicts:
	plottable.d.ts
Updating build files.
Fix jsdoc and more edge case tests.

Conflicts:
	plottable.d.ts
	src/utils/utils.ts
	test/tests.js
	test/utils/utilsTests.ts
Stronger typing and allow non-numeric adjustment.
Merge branch 'develop' into outside_domain

Conflicts:
	plottable-dev.d.ts
Update Interaction.Key to use dispatchers.

Created Dispatcher.Keypress, which calls callbacks when the user is
moused over a target element.

Interaction.Key now uses Dispatcher.Keypress, and can take callbacks
to be called on any keyCode. This change allows multiple Key Interactions
to be attached to the same component.

API changes:
 - Interaction.Key.callback() was removed in favor of Interaction.Key.on(),
   which allows the user to specify a key code to listen for.
 - Interaction.Key 's constructor no longer takes in a key code.

Partly addresses #837 and #1209.