Recent channel users: Rework the way we keep recent user info.

This commit changes circe-channel-recent-users to store copies of
the user hashes from circe-channel-users while those users are not
present. On re-join, the user info is copied back, just with a few
fields overridden.

Additionally, this is now correctly split up. The management of
those two hashes happens in `circe-channel-message-handler`, while
the decision on what to display or not happens in the display
handlers.

Related changes:

- circe-parted-users-timeout renamed to circe-channel-recent-users-timeout
- circe-format-channel-rejoin now has a user@host mask (fixes #47)
tracking-mode: Use appropriate place in the mode line.

The old code uses `mode-line-modes`, which is the right place
visually, but the wrong place semantically. The new code tries
to be a bit clearer and also allows users to remove the mode
display from the mode line without getting rid of tracking.

Fixes #48
tracking-shorten: use 'shorten-strings' from shorten.el

shorten.el is a new string shortening library which provides
component-wise string shortening, which, by breaking strings into parts,
and shortening the parts in a tree-walk algorithm, can often shorten
strings more than the simple prefix shortener it replaces.  It can also be
configured to shorten better than a simple prefix shortener in every case
by dropping unnecessary tail-position parts, as well as many other
possibilities.

This addresses issue #49.