packaging: properly version our extension
This is based on how mercurial does it. In Mercurial and in this commit,
setup.py populates the version__.py file with a version number. The version
number is calculated programmatically in Python within setup.py. Then
init.py reads this and uses it to set the version__ field.