CTemplate: Switch from CSmartPtr to std::shared_ptr

Signed-off-by: Uli Schlachter <psychon@znc.in>
WebModules: Switch from CSmartPtr to std::shared_ptr

Signed-off-by: Uli Schlachter <psychon@znc.in>
client auth: Switch from CSmartPtr to std::shared_ptr

Signed-off-by: Uli Schlachter <psychon@znc.in>
CSmartPtr: Remove, superseded by std::shared_ptr

Signed-off-by: Uli Schlachter <psychon@znc.in>
modpython: Switch from CSmartPtr to std::shared_ptr

Patch by DarthGandalf, I just committed it to git.

Signed-off-by: Uli Schlachter <psychon@znc.in>
Fix CModules::LoadModule() return message handling

[ >> ] This is an example[This is an example] [/path/to/mod.so]

becomes:

[ >> ] This is an example [/path/to/mod.so]
Add CIRCNetwork::LoadModule() helper

Makes it easier to retry loading replacement modules when
loading retired modules fail.
CIRCNetwork: add support for join delay (resolves #586)
controlpanel: get/setnetwork joindelay
webadmin: let specify join delay for networks
Add CUser::LoadModule() helper

Makes it easier to retry loading replacement modules when
loading retired modules fail.
Retire awaynick (resolves #661)

== built-in awaynick ==

debug output on startup:

    [ .. ] Loading network module [awaynick]...
    [ !! ] Module [awaynick] aborted: retired module - see http://wiki.znc.in/awaynick
    [ .. ] Loading network module [simple_away] instead...
    [ >> ] [/Users/jpnurmi/znc/lib/znc/simple_away.so]

loadmod client command:

    <jpnurmi> loadmod awaynick
    <*status> Module [awaynick] aborted: retired module - see http://wiki.znc.in/awaynick

webadmin description:

    retired module - see http://wiki.znc.in/awaynick

webadmin load attempt:

    Unable to load module [awaynick] [Module [awaynick] aborted:
    retired module - see http://wiki.znc.in/awaynick]

== external awaynick ==

znc-buildmod:

    $ znc-buildmod awaynick.cpp
    Building "awaynick.so" for ZNC 1.5... [ ok ]

debug output on startup:

    [ .. ] Loading network module [awaynick]...
    [ >> ] [/Users/jpnurmi/.znc/modules/awaynick.so]

loadmod client command:

    <jpnurmi> loadmod awaynick
    <*status> Loaded module [awaynick] [/Users/jpnurmi/.znc/modules/awaynick.so]

webadmin description:

    Change your nick while you are away
Merge pull request #663 from jpnurmi/awaynick

Retire the awaynick module
Merge pull request #704 from jpnurmi/joindelay

Configurable join delay
Scheduling of quiet vs. verbose config saving

Rename the current ECONFIG_NEED_WRITE to ECONFIG_NEED_VERBOSE_WRITE
as it always broadcasts the result for SIGUSR1, even on success.
Keep ECONFIG_NEED_WRITE for cases where the config should be written
without a notification of success.
CChan: keep track of the state

Make CChan keep track of the channel key, and schedule saving of the
config file when appropriate. This is more robust than trying to do
it from within the chansaver module.
Refactor chansaver (#674)

CChan now keeps track of the state. The module no longer needs to
rely on incoming messages, but can just mark whether each channel
should be kept in config or not. Cleanup things and use C++11 for
loops while we're at it...
Introduce patch level version number for bug fix releases

The patch level version number is ignored in module and config
version compatibility checks. Radically simplified, bug fix
releases shall not touch the headers nor change the config file.
Update Csocket to aefa339

> Support ECDHE exchange if available in OpenSSL
> add openssl's fix for POODLE bug in server mode.
> Give Csocket consumers the ability to disable less desirable protocols
Disable insecure SSLv2 & SSLv3 protocols (ref #621)