Replaced the "Bump Exception Hierarchy" documentation for the BUMP_LOCATION definition with its own.
Modified the bump::Version interface to be easier to use and also refactored BUMP_SOVERSION to BUMP_SO_VERSION.
Removed the unix headers from the FileInfo class that should no longer have been in there.

These headers have been all moved to the unix implementation of the FileInfo class.
Refactored the protected methods so that they no longer have an underscore which unifies all the method signatures.
Added some documentation to the header declarations, no functional changes.
Moved all implementation files to use namespace bump blocks instead of declaring using namespace bump.

This unifies the way we do it in the nested namespaces.
Fixed a "const type on return qualifier" compiler warning by returning the char by reference.

This was just a mismatch between the std::string::at method and the bump::String one.
Added documentation for all enumeration values for Doxygen.
Fixed a weird tab typo, no functional changes.
Moved the FileInfoList typedef to the end of the file to remove the forward declaration.
Moved all protected class methods and members underneath the internal flag for Doxygen.

This means that by default, protected class methods and members won't show up in the docs. If you want to enable this, then set the INTERNAL_DOCS flag to YES in the doxyfile.cmake file.
Removed virtual declarations from the Observer::notify subclass methods that don't need it.
Moved all the header implementation into the appropriate cpp files.

The NotificationCenter template implementations were moved into the NotificationCenter_impl.h file since they still need to be in the header as inlined. Also moved the Uuid operators into the class itself.
Added a String::padWithString() method to make it easy to pad strings for formatting purposes.
Changed up the timestamp formatting for the Log to be "yyyy-mm-dd hh:mm:ss" by adding proper padding.

Previously, the padding logic was wrong and the zeroes were getting appended to the minutes and seconds strings instead of prepended. Also moved the year to the front of the string and added padding for the month, day and hour.
Replaced all the Log macros with functions implemented in the implementation.

Just much better coding practice with safety checks. Had to implement a null std::ostream in the Log class to return when the log level is not high enough.
Replaced all the NotificationCenter macros with functions.

Also updated the example and unit tests.
NotificationCenter destructor now stores the list of keys still registered in the NotificationError description.
Fixed up some "header not found" compiler errors in the bumpExceptions example.
Created a templated Singleton class to make it easy to quickly create a thread-safe singleton.