Message options: New interface.

This commit introduces a new interface to influence Circe's message
handling. This replaces the old ignore and fool handling as well as
the default properties interface.

The new `circe-message-option-functions` is called with five
arguments, NICK, USER, HOST, COMMAND and ARGS, and the returned
options are merged together. This hook can be called in channel or
query buffers, too, and can adjust its behavior accordingly.

The available options are dont-reply, dont-display, hide, all of which
are booleans with the default nil, and text-properties, a list of
default properties to apply to the message, if any is displayed.

Message handlers should use `circe-message-option' to access these
options when needed.

The default settings use `circe-ignored-p` and `circe-fool-p` as
before.