Initial implementation of XEP-0301: In-Band Real Time Text

We can receive RTT events.  Wait events are not yet supported.
XEP-0301: handle wait events
Allow local hooks in jabber-chat-send-hooks
Add jabber-rtt-send-mode, for sending Real Time Text events
Interpret incoming Entity Capabilities information (XEP-0115)

Look for capabilities information in incoming presence stanzas, retrieve
and verify disco info as needed, and plug into "normal" disco info
cache.
Merge jabber-newdisco into jabber-disco

The functionality is about to start overlapping.  Also, there wasn't
much sense in separating the two to begin with.
Look for caps only on "available" presence
Send Entity Capabilities in outgoing presence stanzas

Also changed the disco info feature "plugin" system - now a module that
wants to advertise a feature needs to call the function
`jabber-disco-advertise-feature'.  This ensures that caps are
recalculated as needed.
Advertise RTT feature
Add jabber-rtt to Makefile.am
Fix jabber-rtt autoloads

Use `eval-after-load' to change jabber-message-chain.
Autoload jabber-rtt-send-mode.
Ensure no duplicates in `jabber-advertised-features'

jabber-disco-advertise-features now checks whether the feature is
already listed, to avoid duplicate entries if a module is reloaded.
Duplicate entries can cause invalid Entity Capabilities entries.
Merge branch 'rtt'
Suppress message when writing avatar to cache
Suppress superfluous <active/> chat state after sending message
Include JID in authentication failure message
Use original JID when choosing which accounts to reconnect

Some Jabber servers (notably Facebook Chat) assign a different JID at
resource binding.  This used to confuse jabber-connect-all, such that it
would establish a new connection although the existing one is perfectly
healthy.

With this change, we save the JID that we originally connected with, and
use that to avoid duplicate connections.
Merge remote-tracking branch 'refs/remotes/origin/master'