versioning: set up for next release cycle

* Release script can now make pre-release tarballs too
* Tarballs have git revision info baked into them
* Builds with no .git use baked-in release info if present
* Document new versioning & release strategy
  - now use Semantic Versioning
  - prerelease tarball verions will compare correctly
  - version always suffixed by (potential) prerelease during development
  - only the final release commit is unsuffixed
* Slightly meaningless version bump to 1.1.1-alpha
  - this really means the same thing as "git after 1.1.0", same as now
  - its betas & release will probably be 1.2.0, given the amount of change
  - it has to be semantically after 1.1.0 :)