Added GetSISuffix() virtual method.

This is a major update that includes:
- Normalization over the use of Suffix(), GetSuffix() and GetSISuffix() functions.
- Change unordered_map for a map to support base unit standard ordering when evaluating suffix (ex.: m2·kg·s-2·A-1). The unit are ordered according to that order (m, kg, s, A, K, mol, cd) see. http://physics.nist.gov/cuu/Units/units.html
- Added support for derived suffix form of unit.

Suffix() returns the compile-time evaluated SI suffix. Because compile time unit suffix reduction cannot be completed due to partial template specialization limitation, for complex unit, the suffix string returned might not be the most compact one.

GetSISuffix() returns the run-time evaluated SI suffix. That is, it returns the most compact form in base unit following that order (m, kg, s, A, K, mol, cd)

GetSuffix() returns the run-time evaluated suffix that might include a derived form. Ie: N for force instead of m·kg·s-2.