WIP: Template version for Metric and Optimizer Classes

This patch is resulted by melting several commits together.

Metric and optimizer classes are redifined as templates over computation
type i.e. 'float' for single precision and 'double' for the double
precision.

A bunch of files have changed;

The computation type is added as a new template value
called "InternalComputationType". However, some of newly added
template values are called "ValueType". They should be changed
to more proper names like "ParameterValueType" or
"InternalCompuationType".

Metric and Optimizer classes are not derived from their template
version.
To keep the backward compatiblity, I have to keep the inheritance
hierarchy; therefore, I made a hierarchy of optimizer template
classes, and I kept the legacy hierarchy independent of that.
Backward compatiblity is met, ITK is compiling

The structure for ITKv3 has not changed.

ITK is built completely and all tests are passed after changes of this patch.

Change-Id: If55fcd401fcc9373cba2e0749e27e3c2fa4b2cd1
WIP: Template version for transform IO classes

Adding template version of TransformIO and TransformIOFactory classes
for writing Txt/mat/HDF5 transforms.

After changes of this patch ITK is built successfully and all tests are
passed.

Change-Id: Ic0ff8f91ade15ac6ee99ac6c283f214cad7b181c