[Engine-VBulletinChatbox] Initial vBulletin Chatbox support.

Initial protocol module for the vBulletin Chatbox plugin.
[Engine-VBulletinChatbox] Fix skipping old messages.
[Engine-VBulletinChatbox] Leave message parsing to MessageBuilder.
[Engine] Use HtmlAgilityPack to parse HTML and improve image parsing.
[Engine-VBulletinChatbox] Implement /me support.
[Engine-VBulletinChatbox] Trace calls.
[Engine-VBulletinChatbox] Update token if sending fails; Unicode

Update the security token and, failing that, try to log in anew if
sending a message fails the first time. Include commands to do this
manually.

Also, add Unicode support (decimal XML character escapes).
[Engine-VBulletinChatbox] Fix /relogin and /retoken.

* /retoken shouldn't request the security token twice.
* /relogin should request a new security token after login.
[Engine-VBulletinChatbox] Highlight my own nickname.

A bit weird that this is done completely manually in each protocol.
[Engine-VBulletinChatbox] Improve status messages.

Now output with every relogin or retoken operation, with less copy-paste!
[Engine-VBulletinChatbox] Don't prepend event prefix to commands header.
[Engine-VBulletinChatbox] Remove outdated code.

It unwittingly survived a restructuring...
[Engine-VBulletinChatbox] Fetch security token from FAQ page.

The chatbox archive is a notoriously slow page. The FAQ page seems to be
the most efficient page in terms of processing power, although the data
itself is extracted from the global search form.
[Engine] Handle the "embed" HTML tag gracefully.
[Engine-VBulletinChatbox] Add /say and /quit commands.
[Engine] Pass copies of the submodel when parsing HTML.

Without this, a message like
    one <img src="pic.png" /> two
ends up looking like
    two <Image> two
(the second string replaces the first).
[Engine] MessageBuilder: Allow parsing URIs relative to a given one.

This is useful when incoming URIs may be relative but Smuxi needs absolute
ones.
[Engine-VBulletinChatbox] Support relative URIs correctly.
[Engine-VBulletinChatbox] Retry sending message on non-empty reply.

A non-empty reply signifies that something went wrong (security token, login,
etc.); resend the message in such a case.
[Engine] MessageBuilder: Handle HTML escapes in attributes correctly.

Perform unescaping on src attributes of img and embed tags.