magit-tests.el: merge version from master
magit-tests.el: fix and cleanup

We had serious problems running tests on travis.  This commit addresses
these issues and also makes the tests much more readable.

One test was removed in the process.  But as far as I can tell that test
ended up testing functions from Emacs not Magit.  After that removal one
test remained which requires library `mocker'.  It is rewritten to
simply use `flet'.  We don't need mocker anymore.
README.md: small change
.travis.yml: don't us virtualenv-emacs; don't test contrib

No longer use virtualenv-emacs.  Library `mocker' is not required
anymore, `cl-lib' was not used, and it's trivial to get `ert' using
curl.

No longer build and test the libraries in contrib/, they will be moved
to separate repositories.

Also cleanup.
cleanup library headers
cleanup doc-strings
update authorship information

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 people who have
made a fair amount of contributions are listed there.  These lines are
sorted by appearance.

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 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.
remove bin/authors.pl and bin/mk_rel.bash

`bin/authors.pl' isn't useful anymore since we stopped having a
Copyright line for everyone who ever changed anything.

I am preparing to create a release but cannot see myself using
`bin/mk_rel.bash`, so I am removing that too.
move script contrib/magit to bin/magit

This should make it more obvious to people who run Magit directly from
the git repository that they can add this directory to $PATH.

Until recently `bin/` contained maintenance scripts.  I hope we won't
have to add similar scripts in the future.  It should be possible to do
these things in the `Makefile' instead; provided we really need them.
remove contrib/magit-classic-theme.el

I very much doubt that anybody is using this because it is very
incomplete.  If you do use it please contact me.

The removal is done with the okay of the original author of this
file.
magit-rebase-step: cosmetics
add new function magit-file-line
magit-rebase-info: cosmetics

While this commit by itself looks like I might be going from one
extrem (common the the Magit source) of having very descriptive variable
names to having one letter names I do not have any intentions to do this
everywhere.  Here it makes sense though: the meaning is still obvious
and it helps a lot making the code cleaner.
magit-status-refresh: show commit rebase stopped at

Suggested-By: Moritz Bunkus <moritz@bunkus.org>
add option magit-commit-mode-show-buttons

Suggested-By: Christopher Monsanto <chris@monsan.to>
deal with magit-custom-options being dynamically bound

Ensure that only the command, for which the (global) value of
`magit-custom-options' was set inside a dynamic binding, can see that
value by (again dynamically) binding it to nil before refreshing other
buffers (some of which might make use of that option during a refresh).

We cannot make this variable buffer local because that would collide
with other leaky abstractions.  E.g. the buffer whose value we would
want to use is not actually current anymore when the command is
called (see `magit-key-mode-command').

The change to `magit-log-long' is not actually required, and does not
even have any visible effect.  Before entering this rabbit hole I had
hopes that this change would fix the issue.  I keep it for consistency
with all other places where `magit-custom-options' is integrated into
some bigger list: they all use `append', so stop using `nconc' here.

Uff.  This fixes #633.
allow not using --graph when generating logs
magit-move-branch: cosmetics
magit-delete-branch: restore old behaviour

When the user tries to delete the checked out branch and then replies
that she wants to checkout master first then do so *and* delete the
other branch.

Before the previous commit 2107722 that touched this code we already did
that and I believe it was not intentional to change that.
magit-git-dir: add optional SUBPATH argument