Singleton class for units converter.
All values are based on `2014 CODATA recommended values <http://physics.nist.gov/cuu/Constants>`_.
The following constants and units are supported:
* constants:
- ``speed_of_light`` (also ``c``)
- ``elementary_charge`` (also ``e`` and ``electron_charge``)
- ``avogadro_constant`` (also ``NA``)
- ``bohr_radius``
* distance:
- ``Angstrom``, ``angstrom``, ``A``
- ``bohr``, ``a0``, ``au``
- ``nm``
- ``pm``
* angle:
- ``degree``, ``deg``,
- ``radian``, ``rad``,
- ``grad``
- ``circle``
* energy:
- ``au``, ``hartree``, ``Hartree``
- ``ev``, ``eV``
- ``kcal/mol``
- ``kJ/mol``
- ``cm^-1``
* dipole moment:
- ``au``
- ``Cm``
- ``D``, ``Debye``, ``debye``
Example::
>>> print(Units.constants['speed_of_light'])
299792458
>>> print(Units.constants['e'])
1.6021766208e-19
>>> print(Units.convert(123, 'angstrom', 'bohr'))
232.436313431
>>> print(Units.convert(23.32, 'kJ/mol', 'kcal/mol'))
5.57361376673
>>> print(Units.conversion_ratio('kcal/mol', 'kJ/mol'))
4.184