Improve versioning to be more in line with the Python community

This allows us to expose versioning information for our package, whilst not need to update the same version number in more than one place every time we push an update.