Convert Formatters to classes, allow Axis to take in Abstract.Formatter.

Formatters now also have an option to show only values that are unchanged by
formatting. For example:

var f = new Plottable.Util.Formatter.Fixed(3);
f.format(1); // "1.000"
f.format(1.234); // "1.234"
f.format(1.2345); // ""

This value can be set with .showOnlyUnchangedValues() and is true by default.

In addition, added in Formatter.Custom to allow the Javascript consumers of
Plottable to create new Formatters without writing TypeScript code.