optimize version.sh and update_version.bat

- version.sh already used bash-specific syntax, and MSYS uses bash for sh, anyways,
  so make the script a real bash script and properly call it using bash.exe
- optimze bash syntax (avoid external tools, don't use echo -e, use $() instead of ``, lowercase vars, ...)
  see http://mywiki.wooledge.org/BashFAQ / http://mywiki.wooledge.org/BashGuide
- only use plumbing git commands instead of porcellain commands in combination with external tools
- the script is never passed an argument, so remove the $1 check
- bump copyright year
- make sure the manifest file gets updated in case the manifest.conf changes,
  but the version has not yet increased
- convert line endings to UNIX, because otherwise it will fail when calling it in
  cygwin or native linux
version.sh: count revision number up to HEAD, not just to mergebase(HEAD,master)

The merge base revision is added to the end of the full version string
Added scripts to convert between hashes and revision numbers.

Original script by Armada
build.bat: Fix bug introduced by 520944bf5fdf

Commit 520944bf5fdf accidently reversed the if/else-check for InnoSetup and 7z.
This caused release packaging to break on both 32bit and 64bit windows.

This fix works around this by introducing a new variable %os_type% which stores
Win32 or Win64, and uses this to determine the path of InnoSetup and 7z.

The variable %x64_type%, which decided on whether to use the amd64 native or
the x86_amd64 32bit toolchain for a 64 bit build was removed completely,
because visual studio always uses x64_amd64. Hence hardcode this value when
setting ARCH=.
Merge pull request #36 from m0vie/fixes