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 see this test checks that AssemblyInformationalVersion ends up containing a hash ("keeps" is ambiguous...to me suggests more that the stamper would not have modified a hash in the original rather than that it would keep the hash in its own arguments). I don't see anything checking that it does so only on an incoming version (whatever that means).