joinpart spam: Use `circe-channel-users' (closes #5)

With this patch, `circe-channel-users' now maps nicks to
a hash table. This second table can be used to store extra
information for a given nick. The first application for this
is the joinpart spam protection, which stores a lurker flag
that is nil if the user is no lurker (default should be t).

Circe by default also stores a joined time in the hash table,
the `float-time' when this user joined a channel, or when we
joined if the user has been there longer than us.
circe-reconnect-all: Implemented (closes #10)
server-sentinel: display the event on disconnect

This should be slightly more informative.
joinpart spam: Fix some logic errors in the overhaul.
Multiline messages: Drop trailing newlines.

When sending a multiline message, drop trailing newlines. These
are basically never useful, and can be annoying for code that
adds a newline at the end, like C-u M-!. (Thanks to mtp for
pointing this out.)
autojoin: Don't use the buffer name but the chat target to join (fixes #12)
joinpart spam: Another minor fix for the default value of the hash.

I'm not sure why the last joinpart spam patch got into my master
branch when I pushed it. It was in a different branch and shouldn't
have made it to master yet. Guess I branched off the other fix
from the wrong branch. Oh well.
.gitignore: remove unnecessary lines
README.md: Rewrite with better summary and up-to-date information.
All files: Update package homepage
Headers: Clean up file headers, add "part of Circe" notice.
dolist/mapc: Change most uses of mapc to dolist (closes #7).

Emacs 23 introduced the `dolist' macro outside of the cl package.
This allows a much more readable argument order and general syntax
for iterating over lists. Circe now uses this macro whenever
sensible.

In particular, the two functions circe-mapc-chat-buffers and
circe-mapc-user-channels have been changed to drop the -mapc
infix and simply return the list, for easy use with dolist.
lagmon: Rewrite to use a single timer for robustness.

We now use a single timer to avoid confusion with multiple
concurrent timers referring to different buffers, and to make
enabling and disabling the codes impler. Also, the new code
has a separate indicator for "unknown lag", allowing float
formatting in the main indicator.
circe-lagmon-server-check: count up lag while waiting

Recompute lag and update mode-line display while waiting for the CTCP
LAGMON reply, if lag is growing.
lagmon: Handle nick changes, and some minor fixes

If the user changes a nick just after we sent a CTCP LAGMON,
we might miss the response. Hence, we simply claim we never
sent a CTCP message after a nick change. This causes extra
CTCP messages after nick changes, but that shouldn't be a
problem.

We also increase the lag timeout to 40s, as the old value was
a bit short during connection bursts. This is equivalent to
20s of lag. That could be confusing, but I think the idea of
"disconnect after not receiving a reply for 40s" is a bit
easier, conceptually.

Also renamed circe-lagmon-mode-line-no-lag-format-string to
circe-lagmon-mode-line-unknown-lag-indicator to better reflect
the purpose.
circe-lagmon-mode-line-unknown-lag-indicator: rename 'indicator' to 'string'
circe-lagmon.el: transfer copyright to Jorgen Schaefer
COPYING.FDL: Removed. We do not ship any documentation anymore.
circe-nickserv-registered-p: removed

Variable is not used, and can become out of sync on a services restart.
circe-server-auto-join-channels: keyword in first position used for manually joined channels

This patch addresses the following scenario:

  You are on two networks, for one of which you have nickserv credentials,
  the other not.  On the network with nickserv, you want all of your
  autojoins to happen :after-auth, including rejoining of manually joined
  channels.  On the non-nickserv network, you want :immediate auto-join
  for all channels.

Previously, it was not possible to do the above, because for the sake of
the non-nickserv network, circe-server-auto-join-default-type would have
to be :immediate, and that setting would be used for manually joined
channels on the with-nickserv network.  This patch adds the following
convention to address this situation:

A type keyword in the first position of a channel list in
circe-server-auto-join-channels is used for manually joined channels.
Thus the situation above can be addressed by leaving
circe-server-auto-join-default-type at it's default value of :immediate,
and putting :after-auth in the first position of the auto-join channels
list of the with-nickserv network.