Handle ERR_ERRONEOUSNICKNAME during registration.

Circe will now try a completely new nick when the nick we're trying
to use during registration is not valid, to avoid an infinite loop
trying to adjust an invalid nick.

Fixes #60.
Provide an easy way to enable/disable logging globally.

Fixes #63.
Use thingatpt's URL functions to buttonize URLs.

The previously-used regexp did not match all URLs correctly. The new
approach uses the existing functionality in thingatpt, which required
a rework of the way this is handled, as a single regexp is not
sufficient for URLs.

Fixes #65.
Process messages before displaying them.

Circe now runs the display handler for a message after its normal
handler ran. This feels a lot more sane and also should fix topic
diffs.

Fixes #69.
Allow RPL_TOPICWHOTIME for channels we are not on.

Doing a /TOPIC on a channel we are not on now should not cause
an error anymore, as Circe will display the TOPICWHOTIME string
in the last active buffer if the specific chat buffer does not
exist.

Fixes #73.
Handle RPL_TOPICWHOTIME time stamps of 0.

Fixes #74.
Provide tracking-buffer-{added,removed}-hook.

These hooks are run when a buffer is added or removed from the
list of tracked buffers.

Fixes #70.