Adjust width hueristic for Numeric Axis.

Now draws all ticks and takes the longest, rather than speculating
as to which will be the longest.

Added tests for width() and height() on Numeric Axis.

Added some documentation for Custom Formatter.

Close #604.
Add missing semicolons.
Merge branch 'master' into 604-numeric-axis-width
Merge branch 'master' into 604-numeric-axis-width
Switch to using TextMeasurer.
Merge branch 'master' into 604-numeric-axis-width
Adjust calculation to account for negative signs and variable-length formatters.
Merge branch 'master' into 604-numeric-axis-width

Conflicts:
	plottable.d.ts
	plottable.js
	src/utils/formatters/customFormatter.ts
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.
[refactor] Components now return desired width/height directly, rather than
the minimum of desired width/height and offered width/height. Table now allocates
the minimum of desired/offered height appropriately.

This results in simpler component layout code, and lays the groundwork for simplifying the
requestedSpace interface from 4 fields to 2
[refactor] Reimplement`Component._isFixedWidth` (& height) using flags not trickery

Close #484
Merge branch 'master' into add-dispatchers
Merge branch 'master' into 604-numeric-axis-width
Merge branch 'master' into 604-numeric-axis-width
[refactor] Components now return desired width/height directly, rather than
the minimum of desired width/height and offered width/height. Table now allocates
the minimum of desired/offered height appropriately.

This results in simpler component layout code, and lays the groundwork for simplifying the
requestedSpace interface from 4 fields to 2
[refactor] Reimplement`Component._isFixedWidth` (& height) using flags not trickery

Close #484
add more tests
Merge branch 'better-requested-spcae' of github.com:palantir/plottable into better-requested-spcae

Conflicts:
	plottable.js
clearbox working
clearbox working