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
[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 604-numeric-axis-width
Add documentation to a number of files.
 - components/baseAxis.ts
 - components/legend.ts
 - components/plots/abstractBarPlot.ts
 - components/plots/areaPlot.ts
 - components/plots/horizontalBarPlot.ts
 - components/plots/verticalBarPlot.ts
 - core/broadcaster.ts
 - scales/colorScale.ts
 - scales/interpolatedColorScale.ts
Fix a test failure, I renamed a var in source but it was being any-referenced by a nefarious test
[minor] Address justin's feedback on API changes pr
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
Merge branch 'better-requested-spcae' of github.com:palantir/plottable into better-requested-spcae

Conflicts:
	plottable.js
Simplify calculation, add gutter(), remove old axisTests.ts

The calculation now just takes the max over all tick lengths.
While this will truncate some things if the user zooms in, it will
work correctly for static cases.

gutter() has been added to set the amount of extra space between
the tick labels and the edge of the axis. gutter() should now
be the preferred way to give extra room for decimal places on
zoom, rather than explicitly setting the width with width().

axisTests.ts was still hanging around, so I got rid of it.
Merge branch 'master' into 604-numeric-axis-width

Conflicts:
	plottable.d.ts
	plottable.js
	test/tests.js