create magit-compat.el for Git and Emacs compatibility code

Move the compatibility code for older versions of GNU Emacs
and Git to the new library magit-compat.el.

For each function that is defined for older Emacsen note
when it was first added to Emacs.

I am aware that the `magit-configure-have-*' functions use
Yoda conditions and I am at peace with it.  ;-)
use {setq,defvar}-local; define them for older Emacsen
Merge branch 'compat' into cleanup
update authorship information (on master)

The copyright notices have not been updated in a very long time.  By
now so many people have contributed that it is not feasible anymore
to have a copyright line in `magit.el' for everyone.  Now only current
and former maintainers are listed explicitly in this file.  In other
libraries some non-maintainers who made changes to a particular file
are also listed - including but not limited to the original author.

Right below the now shorter Copyright list is a new link to the list of
all contributors on github.

The header keyword "Original Author" is replaced by just "Author",
that's how it is commonly done.  All keywords no longer contain
whitespace, but use a dash instead.

Both Phil Jackson and Peter J Weisberg are now listed as former
maintainers.  Peter has been removed from the list of active maintainers
as he hasn't done much lately.  Nicolas Dudebout and I are added to the
list of active maintainers.  That list is sorted by activity.

Appropriate Copyright lines and Author keywords are added to files
besides `magit.el' (partly this is done in an earlier commit).

In `magit-svn.el' and `magit-blame.el' several people have already been
listed that have not made a single commit to those file.  I assume this
is because these files have been ported from other packages and therefor
did not remove anyone.

I have added myself as Author of `magit-wip.el' even though Ryan
C. Thompson wrote the first version, because his version was barely
usable.

If you are unhappy about a change please contact me.
Merge branch 'maint'

Conflicts:
	.travis.yml
	Makefile
	magit-key-mode.el
	magit.el
	rebase-mode.el
	tests/magit-tests.el
Merge branch 'cleanup'

Conflicts:
	Makefile
README.md: remove duplicated build status
magit-rev-diff-count: use cl- prefixed functions
magit-compat.el: test for correct function
fix 5633708
add option magit-rigid-key-bindings, replacing magit-simple-keys.el
tests/magit-tests.el: quiet byte-compiler

We need `flet' from `cl'.  The new `cl-flet' is mostly useless.
remove contrib/magit-inotify.el

This library is deprecated in favor of magit-filenotify.el
which is available separately.
improve version detection and build process

* Add new function `magit-version' which is called late when loading
  `magit.el' and sets the value of variable `magit-version'.

* Use function `magit-version' in the `Makefile' instead of the old
  messy code used to set the version.

* Improve the `Makefile'.  It doesn't modify itself anymore.  Contains a
  `help' target. etc.  Generally it is much cleaner now.

* Fix and improve `tests/magit-tests.el'.  It now even works when travis
  is under high load.

* Remove `tests/run-tests.el'.  Use `make test'.  Interactive tests will
  come back as a separate make target.

* Remove `magit-pkg.el.in'.  Instead generate `magit-pkg.el' only when
  creating the marmalade tarball.  Elsewhere that file is not
  needed (including melpa).

* Remove `magit.spec.in'.  It is neither used by its original author nor
  the Fedora distribution (anymore).  This file has to be removed
  because it depends on the name of the loaddefs file being `50magit.el'
  and insists on installing it below `/etc`.  That isn't correct for
  many distributions and certainly not when installing Magit manually.
  Once this issues were addressed the spec file did not work anymore.

* Cleanup `.gitignore', `.travis.yml' and `README.md'

* Adapt `INSTALL.md' to above changes.

PS:

* I tried splitting this up into multiple commits but did not succeed.

* When Magit is installed using Melpa `magit-version' still reports the
  "melpa time-stamp" as version, not the `git describe --tags' version.
Merge branch 'better-build'
don't require package.el for compilation

Since older Emacsen don't have it and this is
only used to suppress compile warnings anyway.
magit-process-password-prompt: support yubikeys
magit-compat.el: whitespace
magit.el: cleanup dependency declaration
magit.el: remove Version keyword