Support lambdas in module commands
modules: use override keyword

Resolves #736
modules: cleanup superfluous virtual keywords

These methods are not overriding anything or being overridden anywhere.
savebuff: Handle empty passwords identical

setpass <password> did not check for an empty argument.
Use the same fallback password as OnLoad()
Update Csocket to 1d7e685

> Extend EDisableProtocol
> missing ifdef for non-ssl
> added ability to disable compression
> added new callbacks for Certificate Verification and Handshake completion
> added SNI support for client and server, cleanup some of the certificate verification callback code
Fix non-SSL build
Fix #719: Disable SSL compression
Merge pull request #739 from markusj/savebuff-handle-empty-password

savebuff: Handle empty passwords identical in SetPass, and in OnLoad
configure: pass ICU build flags to modules
Merge pull request #738 from jpnurmi/override

modules: use override keyword
Merge pull request #741 from jpnurmi/charset

configure: pass ICU build flags to modules
Config option for SSL protocols (resolves #720)

ZNC currently disables SSLv2 and SSLv3 by default. To keep the ZNC
defaults (recommended, may change in the future versions) and for
example disable TLSv1 in addition, specify in the global config
section:

    SSLProtocols = -TLSv1

Available (case-insentive) values are:

    All, SSLv2, SSLv3, TLSv1, TLSv1.1, TLSv1.2

A non-prefixed "absolute" value overrides the ZNC defaults:

    SSLProtocols = TLSV1 +TLSv1.1 +TLSv1.2
Merge pull request #728 from jpnurmi/ssl-protocols

Config option for SSL protocols (#720)
Enable UBSan in travis
Merge branch 'lambda'
Revise CChan::JoinUser() & AttachUser()

The old AttachUser() that sent JOIN without topic or names replies
would leave clients in incomplete/broken state. JoinUser() was doing
two things; depending on passed arguments it was either joining user
on the channel on IRC, or attaching clients (properly). Now JoinUser()
joins the user on IRC, and AttachUser() attaches as expected from the
method names.
ListClients: add identifier column
Update Csocket to b5185dc

> Fix IsConnected() to return false when Disconnected() gets called
Replace CIRCNetwork::FindClient() with FindClients()

FindClient() is not enough, because there are no restrictions to used
identifiers. They don't necessarily need to be unique, and the same
identified client might re-connect meanwhile a ghost connection is
still hanging there.
Merge pull request #752 from jpnurmi/findclients

Replace CIRCNetwork::FindClient() with FindClients()