Throw a specific exception from operator<<()

The operator `<<`` now throws std::invalid_argument instead of using
just a `throw` statement. Using a `throw` statement outside of a catch
block results in call to `terminate` without giving the user any option
to recover (see http://stackoverflow.com/a/2692105/1062948). Throwing a
specific exception allows the user to decide how they want to handle
this situation.
Updated operator<<() to make it more generic so it works for all quantities.
Operator << now writes directly to the specified output stream instead of using an ostringstream.
Added a file for holding fundamental physical constants.
Added units for permittivity and permeability.
PhysicalConstants.hpp now includes ScientificQuantities.hpp so that users may just include PhysicalConstants.hpp. This also makes PhysicalConstants.hpp self-sufficient.
Added alternate names for length units based on http://physics.nist.gov/cuu/Units/units.html.
Updated to define derived units in terms of base units instead of hard-coding the dimensions. Added the ability to define fundamental units of various quantities. Added the ability to print quantities with fundamental units and an overload that prints generic quantities that do not have any fundamental units.
Added fundamental units for more derived quantities.
SQTest now prints all the supported physical constants.
Added electron Volt energy conversion factors.
Renamed IsFundamentalUnitAvailable to HasFundamentalUnit.
Added doxygen-style documentation.
Merge pull request #5 from crayzeewulf/update-ostream-output

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