Enable predicate based disable

Predicates must be placed into the `god-exempt-predicates' variable,
which is a list of functions that receive no arguments and that must
return t if the mode should be disabled for the current buffer.

This commit, moved the `god-exempt-major-modes' variable check into a
proper predicate called `god-exempt-mode-p' that is added to the
`god-exempt-predicates' by default.

Also a new predicate called `god-special-mode-p' is provided and
activated by default. It returns t for buffers that inherit from
`special-mode'.
Cleanup god-exempt-major-modes list

God mode is now properly disabled for Buffer-menu-mode, git-rebase-mode,
help-mode, magit-status-mode, package-menu-mode thanks to the new
`god-special-mode-p' predicate.
Add tests for predicate based disable feature
Added docs for the new predicate based disable