Streamline Version Numbering Using Tags and Add Commit Hashes

This way, you only need to tag the code the version you want and the version number propagates. Also, to help differentiate different builds in between releases, I added commit hashes to the version number.

I added the missing tags to my fork (1.0.6, 1.0.6.1, 1.0.7); not sure how to add those to the pull request.