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'.