Enhance assembly stamping

- support AssemblyInformationalVersion
- allow to use hash code in AssemblyInformationalVersion. This works
  since that is treated as a string by the framework.
- some refactorings
- refactor StampAssemblyTests
I think it is pretty difficult to know when it's a hash and when a real number. The hash doesn't have to be 12 characters long, could also be shorter (a short hash with git is typically 6 to 8 characters). And build numbers could also go above 6 digits. So I suggest we just leave it as it is for now.