controlpanel.cpp: Increases general verbosity of command results.
controlpanel.cpp: Standardize error wordings

When a network cannot be found for a user, and where a command will output an error under such circumstances, use similar wording in each message.
controlpanel.cpp: Fixed a Fail to Compile error introduced in prior commit.
Fix PartyLine so that forced channels may not be left at all - users will be rejoined at once.
Merge commit 'refs/pull/295/head' of github.com:znc/znc
Catch as references
Merge commit 'refs/pull/303/head' of github.com:znc/znc
Cleaned up more warnings.
Merge commit 'refs/pull/304/head' of github.com:znc/znc
Fix issue introduced in previous commit.
Explain that altering znc.conf by hand is a bad idea. Fixed a typo.
Remove unneeded headers.
HTTPSock: Gzip compression for static files (text/* mime types + files
with .js extension) and dynamic HTML responses (if gzip is available and
the compression method is supported by the requesting HTTP client).
Get rid of empty CHTTPSock::WriteFileGzipped method if there's no zlib. It's still in the header, but this does not have any negative side effects.
Add a generic threads abstraction

This should make it easier to work with threads. It provides classes for mutexes
and condition variables. Additionally, there is a special CMutexGuard that
automatically unlocks the mutex on destruction and a CThreadPool class.

This thread pool is used to replace the thread pool in the sockets code.

Signed-off-by: Uli Schlachter <psychon@znc.in>
CJob: Add a way to do stuff on the main thread

This just moves the pipe from the socket code to the thread pool. However, now
all CJobs can use this and there is a single place for them to get deleted.

Signed-off-by: Uli Schlachter <psychon@znc.in>
Fix #293

In GetAvailableMods() modules paths were returned like "moddir//module.pm",
but when they are loaded, they use path "moddir/module.pm".

Because of that our hack of cleaning %INC when the module is unloaded,
which enables UpdateMod, removed wrong record from %INC, left right
record in it, and erased the module's namespace.

When the module was loaded again, the namespace was not restored,
because "require" didn't load the module, because it was still in %INC.

So, when we call a function of that module, the function does not exist
anymore.
Use " " instead of ":" in awaystore's buffer internal format. Fix #267
crypt: Add time stamp to buffered messages

This is relevant when replaying the buffer on connect and brings the crypt module in sync with the normal logging functionality (which it bypasses).
crypt: Use ASCII for nick prefix and make it configurable

The previously hardcoded value of ‘\244’ is causing problems for clients which expect valid UTF-8 from the server/bouncer. This commit fixes #228.

The prefix is stored using a key of ‘[nick-prefix]’ in the general key/value store for the crypt module, which previously was only used for encryption keys.

This is not the best design, but the least intrusive one.