Major refactor and implements prerelease versioning.

See https://github.com/Zoltu/Zoltu.Versioning/issues/7 for details on how prerelease tagging is implemented.