Add methods to create X/Y axis labels to WorkspaceData classes

All of the data should have meaningful units so it makes sense to
tie them together.
Refs #9252
Use new utf8Label methods for X axis of 1D MatrixWorkspace graphs

Refs #9252
Add UnitLabel base class.

It will be used to store label information for units.
Refs #9252
Tidy up of Unit.h to remove unirequired headers

Refs #9252
Add some basic UnitLabel concrete types.

Refs #9252
Implement & test copy constructor/assignment operator.

Refs #9252
Add UnitLabel classes for each defined unique Unit class label.

Refs #9252
Simplify UnitLabel class by just storing attributes.

It makes it easier to use.
Refs #9252
Simplify how unit labels are used/stored in the Unit classes.

Refs #9252
Add a PlotAxis class.

It will handle creating axis titles for a given workspace. This keeps
information in a single place.
Refs #9252
Harmonise code for X axis title creation.

Refs #9252
Harmonise code to create a title for "Y" values in a workspace.

Refs #9252
Use PlotAxis class for spectrogram plots.

Refs #9252