Refactored the bump::Log to be fully thread-safe which completes Issue #4.

Previously, only the std::ostream of the Log was actually thread-safe. The Log system needed to be modified so the entire system was thread-safe. This commit addresses the issue. The convenience functions now only accept a single bump::String argument instead of using the << operators.
Added the smallsha1 library and the CryptographicHash class information to the README doc completing Issue #5.
Incremented the version number to 1.1.3-15.
Changed the log convenience functions to share a class mutex instead of a global one.

This allows for additional logging convenience functions to be added using the same mutex. Previously, there was no way to add additional functions because you couldn't use the same global mutex used by the other functions since you didn't have access to it.
Removed the uint64_t type from the log example and also fixed an ivar initialization error.
Incremented the version number to 1.1.4.
The Observer, KeyObserver and ObjectObserver classes are no longer using the BUMP_EXPORT preprocessor directive.

This causes issues on Windows with the declspec dllimports since the implementation of the templated classes is actually inside the header. Therefore, if we use the BUMP_EXPORT directive, the linker gets confused when linking other applications against the bump.lib. It can't find the symbols because the BUMP_EXPORT directive is telling the linker to find them in the bump.lib but they aren't in there. This patch fixes up the problem. The solution is to simply remove the BUMP_EXPORT directive altogether when the entire implementation is in the header.
Finally locked down how to use the BUMP_EXPORT directive for a parent class to a templated subclass.

The templated subclass always has to be fully implemented in the header and cannot have the BUMP_EXPORT directive because it is not going to be imported or exported by the dll. It will instead be part of the calling library or application since it is implemented in the header.

The important thing that was missing earlier is that you cannot have virtual method in the parent class with them overridden in the templated subclass. You can only have pure virtual methods. Otherwise it appears that the linker cannot figure out whether to grab the symbols from the library or the header. That's my best guess as to what's going on here. Either way, by making the methods pure virtual, the issue is resolved.