Base interface for all Measure classes.
All concrete subclasses of AbstractMeasure are required to
implement the method:
public static AbstractMeasure newMeasure(String s, int unit);
Other AbstractMeasure-level constructors may be defined, depending
on each the primative-types that each concrete class can handle.
For instance, Distance is based on a double value, so in addition to
the above, Distance.newMeasure(double d, int unit) will be defined.
The allowed values of the unit specifier depends on (and is defined
in) each Measure type.