Begin work on an internal version tracking system.

Because the project's version is tracked using Semantic Versioning the
it makes sense to create an internal representation of this as well.