circe-nickserv-ghost-style: replacement for circe-auto-regain-p

This allows for the option to ghost immediately upon connect, resolving
issue #16, "preferred nick regaining does not work".
circe-new-buffer-behavior-ignore-auto-joins: new variable

When t, the value of `circe-new-buffer-behavior' will be ignored for
auto-joined channel buffers.
circe-set-message-target: util to set targets in circe-format-strings
docstrings: spelling and grammar fixes
lui-format: Support the value of the format argument to be a procedure.

Fixes #35.
lui-format: Handle the case where format is a string, too.

It would error out on `symbol-value` if not guarded. Thanks to
retroj for noticing.
circe-special-display-alist: generalization of circe-fools system

circe-special-display-alist is an alist of hostmasks or functions that
match hostmasks with text properties to add to matching users' messages.
circe-display: 'highlight-area property to limit special-display face

circe-special-display-alist may cause a face to be added to a message
based on its sender.  This patch allows the portion of the message that
the face is applied to to be limited to characters with the text property,
'highlight-area t.  A format function (instead of a format string) can be
used to add this property.
circe-display: circe-server-face and circe-my-message-face low precedence

This patch makes circe-server-face and circe-my-message-face have the
lowest precedence in the faces stack for messages.  This means that when
another face is present, such as circe-originator-face or a face applied
via *circe-special-display-spec*, those faces take precedence.

Special-display faces have low precedence (just above circe-server-face
and circe-my-message-face), except when the 'highlight-area property is
used to limit the area that the special-display face is applied to; then
the special-display face has higher precedence than faces that came from
keywords (like circe-originator-face).  The rationale is that if
'highlight-area is present, special-display is being used to call
attention to a specific part of the message, so, higher specificity means
higher precedence.
circe-ignore-matches-p: rename arg 'alist' to 'patterns'

..because it's not an alist
circe-auto-join: fix bug related to circe-new-buffer-behavior-ignore-auto-joins

The circe-new-buffer-behavior-ignore-auto-joins mechanism works by keeping
a list of auto-joined channels, and by circe-server-get-chat-buffer
ignoring channels in that list in the cond branch that creates a channel
buffer if it does not exist.  This same branch removes the channels from
the list after they are used, so that a later JOIN of an auto-joined
channel, for example, if the user killed the channel buffer, then used the
JOIN command, would let circe-new-buffer-behavior be used to determine
whether and how the new buffer is displayed.

There was a bug, because if you reconnect to a network, channel buffers
already exist for all of the auto-join channels, so the cond branch that
manages the aforementioned list would never be reached.  The channel name
would not get cleaned out of the list when the channel was auto-joined,
and a subsequent join of that channel would not behave according to
circe-new-buffer-behavior.

This patch fixes that bug by only adding auto-joined channel names to the
list if a channel buffer for the channel does not already exist.
Revert "circe-display: 'highlight-area property to limit special-display face"

retroj added `highlight-area` as per my request, but I realize now that
my request was foolish (pun intended). I mixed up two different features
in my head. "Special display" is the "default face"/"default properties",
it's *not* a highlighting.

This reverts commit 7b1ebf70a9fccb03a2e428888528124c64c2f3b5.
circe-default-properties: New name for circe-special-display.

This setting will set the default properties of a Circe display
message. The new name is a lot more intuitive. "Special" is always
a bit iffy to use.

The setting of *circe-default-properties* for CTCP events is also
moved from the CTCP ACTION handler to the general CTCP display
handler, where it belongs.
Redo circe-display: circe-server-face and circe-my-message-face low precedence

Commit df28df51b89c0176f11f778de4fa22f28a6a6aaf got lost in the last
revert. This commit re-applies that change.
tracking.el: docstring correction