Refactored the implementation of operator<<() and added a header containing physical constants.

Several improvements (I hope) in this pull request:

- The implementation of operator<<() has been refactored so that it works in all cases. Specific fundamental units may be specified for selected quantities by specializing the `FundamentalUnit` template. If no specific fundamental unit is specified for a quantity then a fallback operator<<() is 
available via SFINAE to print the quantity in a generic format. Thus, no exception will be thrown while displaying any quantity. 
- Added a new header `PhysicalConstants.hpp` containing several physical constants whose values are obtained from NIST. More will be added in the future. 
- Modified definitions of derived quantities so they use readable expressions for the corresponding physical quantity instead of hard-coded integers. 
- Added more derived quantites from NIST. 
- Updated `SQTest.cpp` to display the new derived quantities as well.
- Added `doxygen`-style comments. More to come.