Nick in 301 can start with : - it's IRC after all...

Conflicts:
	modules/extra/antiidle.cpp
Introduce time zone (string) setting.

Presently unused but intended to supersede the current time zone offset.

The advantage of a string is that it can be set to something like Europe/Copenhagen and thereby adapt to daylight savings time.

Conflicts:
	User.cpp
	User.h
Use time zone string instead of offset.

This is done by setting the TZ variable prior to calling localtime() or ctime().

There are a few calls to ctime()/localtime() which doesn’t adjust for time zone offset. This patch affects the behavior of these since the TZ variable is global.
Update Csocket to d7206c6aa88bd7988f

Conflicts:
	src/IRCNetwork.cpp
Respond to 670 from the server by switching to TLS

If a client sends STARTTLS to the IRC server, once the IRC server responds
with a 670 then it will expect all future communications to happen over
TLS.
Add server time CAP and Client flag.

Conflicts:
	Client.cpp
	Client.h
Add string formatting function with named params.

In addition to the formatting function, a matching Escape type is added.
Rewrite Buffer to store a format string.

Will use this to allow more parameters to be inserted at the time the
buffers are flushed to the client.

Conflicts:
	IRCSock.cpp
	include/znc/IRCNetwork.h
	modules/watch.cpp
	src/IRCNetwork.cpp
Unify channel buffers and CBuffer.

Conflicts:
	Buffer.cpp
	Chan.cpp
	Chan.h
	Client.cpp
	IRCSock.cpp
	modules/crypt.cpp
	modules/savebuff.cpp
	src/IRCNetwork.cpp
Slight refactor of CBuffer & CBufLine.

This is in preparation of adding more attributes to a CBufLine. Going
forward, at least savebuf will need access to all of these to properly
serialize buffers.

Basically, instead of relying on `GetLine()` to return `false`, the
caller is now expected to check bounds himself using `Size()`.

Conflicts:
	Chan.cpp
	src/IRCNetwork.cpp
Store and format time in CBufLine.

Buflines need to know which part of text to wrap with the timestamp. The
second parameter to `AddLine` (and shorthands) is that text, which after
wrapping is added as the `text` parameter to `NamedFormat`.

Timestamps are formatted at the moment buffers are flushed to the
client. The client parameter to `GetLine` provides access to the User
and the new server-time capability.

Conflicts:
	Buffer.cpp
	Chan.cpp
	Client.cpp
	Client.h
	IRCSock.cpp
	User.cpp
	include/znc/IRCNetwork.h
	src/IRCNetwork.cpp
Working savebuff saving and loading.

It's even backwards compatible!
Don't forward a 670 to a client

This might result in the client switching to SSL if it supports it.
Breaking the current connection
Print timestamps in front of debug messages.
send 422 event if MOTD buffer is empty

Conflicts:
	src/IRCNetwork.cpp
Use threads for resolving DNS.

Drop support for c-ares. Though Csocket still supports it, ZNC's
configure script doesn't enable it anymore.

This should fix big brokenness of c-ares library, which tried to
connect via IPv6 even when IPv6 is disabled on the system.

Also should fix github issue #37

Conflicts:
	IRCSock.cpp