.gitattributes: mark most scripts in build_tools as not for export

(but not all!) build_documentation.sh is needed for the tarball if you run make distclean
add git_version_gen: generate a version number from the git tree

Originally from the git sources (GIT-VERSION-GEN)
(C) Junio C Hamano <junkio@cox.net>
Reused under GPL v2.0
Generate version numbers dynamically

This commit hooks the Makefile up to generate a FISH_BUILD_VERSION
symbol and kills off PACKAGE_VERSION in .cpp files.

It also modifies the tarball generation script to add the necessary
version file for releases.
configure.ac: generate the fish version number dynamically

Note that this will NOT get updated on every run - even if autoconf is run manually, the value may be cached. The PACKAGE_VERSION variable/symbol will not be reliable. Use FISH_BUILD_VERSION instead.
osx/config.h: define the FISH_BUILD_VERSION symbol
Makefile.in: don't build dist stuff from Makefile, use build_tools
tarball contents should match the filename
.gitignore: ignore tarball files
fix conflict and merged with official repo