sasl: send RPL_SASLMECHS
doc/ts6-protocol: Correct the mode letter for termination
libratbox/gnutls: add gnutls v3 api compatibility without breaking v2
libratbox: regenerate autotools files
ssld: force the control buffer to be unsigned bytes except in special circumstances

This has the side effect of fixing GnuTLS.
Merge pull request #46 from grawity/sasl-mechlist

sasl: send RPL_SASLMECHS
libratbox: Fix undefined behaviour advancing pointer beyond end of array.

The C standard does not allow constructing pointers beyond one past the end
of an array. Therefore, if size is an unsigned type (size_t), then
buf + size is never less than buf.

Clang on 32-bit took advantage of the undefined behaviour, causing
segfaults.

Lightly tested.
Clarify UMODE +R help text
Remove SSL_OP_NO_COMPRESSION from openssl initialization.

SSL_OP_NO_COMPRESSION was presumably added in an attempt to prevent
information leakage in a manner similar to recent attacks on HTTPS.
However, assuming that IRC is vulnerable to the same class of attacks is
incorrect: the behavior of the IRC protocol (a single long-running
connection) is not the same as that of HTTPS (multiple ephemeral
connections). HTTPS's use of ephemeral connections means that certain
assumptions can be made about the contents of the compression
algorithm's dictionaries and the content exchanged between the client
and server (e.g. the content being nearly the same for each connection),
which is not true for IRC. Additionally, they rely on the attacker being
able to coerce the client into creating many HTTPS connections (and
resending some secret token belonging to the user, along with
attacker-controlled data) each time, none of which is possible with IRC.
Lastly, since compression is no longer performed, this option will
result in leaking the lengths of messages transmitted to and from the
client. This option does reduce CPU utilization on Charybdis servers but
also increases bandwidth consumed.
m_services: Make sure to return a value from the modinit function.
doc/ts6-protocol: Document ETB message (EOPMOD capab).
webirc: Check validity of given IP.
startup: Check return value of open /dev/null. Don't fclose stdin/stdout/stderr.

Open /dev/null for standard fds earlier, so a failure can be reported.
Do not fclose stdin/stdout/stderr but just overwrite the fds with
/dev/null.
extensions/roleplay: Fix memory leak on every use.
bantool: Close .conf files when done reading.

Not very many files are read, so leaving them open is not a major issue.
balloc: Fix memory leak when get_block() fails.
extensions/mkpasswd: Do not leak /dev/random fd.
conf: Do not leak memory when modules::module is already loaded.
Replace double semicolons with single; place null statement on its own line.

No functional change is intended.
modules: Fix bad sizeofs.