magit.el: do not require iswitchb at compile-time

Instead declare variable `iswitchb-temp-buflist' as function
`iswitchb-read-buffer'.  That function is used by
`magit-iswitchb-completing-read' which also requires `iswitchb'
at runtime.

Generally it is better to require such features which might not be used
at runtime at least at compile time.  We are not doing that here because
in version 24.4 of Emacs, `iswitchb' is obsolete.  If we did require it
at compile time, then that would result in a warning.
magit{,-blame}.el: do not explicitly require easymenu

That is always loaded because it is used by some other built-in
libraries which are also always loaded.  This should be considered
belonging to the "core" of Emacs, just like e.g. `simple' which we
most likely also use without requiring it explicitly.
magit-blame.el: require cl-lib at runtime

Instead of only requiring it at compile time.  We are already doing that
in `magit.el' anyway, so there is no point in "avoiding to load it".
magit-tests.el: provide feature
magit-tests.el: add minimal header
magit-tests.el: untabify, and enforce use of tabs
magit-rev-format: new function