magit-describe-item: add battle proved implementation

That's what I used when I last worked on the section code.
I just never got to move this from by init file into Magit.
add magit-with-blob
magit-font-lock-keywords: remove obsolete entries
magit-tests.el: don't require magit-blame

Earlier the only test related to magit-blame has been removed.
magit-tests.el: don't require cl

We no longer use anything from cl; and if we did, we should be using
cl-lib instead.
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