Use `face-remap-add-relative' to not interfere with `buffer-face-mode'

`buffer-face-set' overrides and disables any faces used by
`buffer-face-mode' (or derived mode like `variable-pitch-mode').
Using `face-remap-(add|remove)-relative' allows us to add the
`auto-dim-other-buffers-face' alongside any faces used by
`buffer-face-mode'.

[mina86@mina86.com: checkdoc'ed, untabified and renamed
 `adob-face-mode-remapping' to `adob--face-mode-remapping']
Refactor `adob--dim-buffer' to check `dim' only once

Instead of having two top-level `when' statements first checking
for “(and (not dim) …)” and the second one for “dim”, use an `if'
checking for “dim” with a nested `when' checking for “…”.

Also, after removing relative face remap, set the
`adob--face-map-remapping' variable to nil.
Move hooks adding/removing to separate function

Both `turn-on-auto-dim-other-buffers' and `turn-off-…' had the full
list of hooks that adob used.  Change those function so that the list
is now in a separate function – `adob--hooks' – which adds or removes
the hooks depending on the argument.
Remove pre command hook

The only purpose of `adob--pre-command-hook' was to record the
`current-buffer' before the command was executed.  This allowed
`adob--post-command-hook' to check whether the buffer changed.

A much simpler approach is to record buffer whenever it is
undimmed.  This gets rid of the pre command hook and the whole
logic is now in `adob--post-command-hook'.
Wrap `adob--dim-all-buffers' into a lambda when adding as a hook

`focus-out-hook's are called with no arguments but since commit
[e64bdbd: Use `face-remap-add-relative' to not interfere with
`buffer-face-mode'], `adob--dim-all-buffers' function requires
one.  To make it work as a `focus-out-hook', it needs to be
wrapped inside of a lambda.

[mina86@mina86.com: reworded commit message]
Drop turn-{on,off}-* functions.

`turn-on-auto-dim-other-buffers' and `turn-off-auto-dim-other-buffers'
functions were not really useful.  For example, they did not set the
`auto-dim-other-buffers-mode' variable so they could not be used
instead of calling the minor mode.  Furthermore, since [cfab476: Move
hooks adding/removing to separate function], they were pretty short
thus separating them did not provide much benefits as far as
readability is concerned.  Because of that, the functions are now
removed, and their code put directly into the minor mode function.
Allow disabling “dimming on focus out” feature

Added `auto-dim-other-buffers-dim-on-focus-out' customize variable
which allows disabling of the “dim on focus out” feature.