Implement throw macros.

These macros throw an exception and log its message at the requested
severity level.

Also update Doxygen configuration file to fix undefined references,
caused by the fact the ENABLE_TRACE_LOGGER macro was undefined before.
Add the unit module.

This module adds a templated based unit tag on values allowing to do
calculations using, and processing units.
Implement the invalid value exception.

This value will be used to indicate errors when loading XML data in
boost property tree.
Add a geometry module.
Add the celestial module.
Add the simulation module.