controlpanel: allow wildcards for getchan & setchan
Correct documentation for OnUnknownUserRaw
Merge pull request #683 from NuclearW/onunknownuserraw-docs

Correct documentation for OnUnknownUserRaw
Add ircv3.2 batch and batch channel and query buffer playback.
Merge pull request #679 from jpnurmi/setchan

controlpanel: allow wildcards for getchan & setchan
Merge pull request #678 from NuclearW/batch-playback

Add ircv3.2 batch and batch channel and query buffer playback.
Handle multi-receiver NOTICE and PRIVMSG

This changes znc to handle multi-receiver messages in the same way it handles multi-channel join or parts.  This will ensure that no more than one target is ever given to a module for any given call.
Fix valueless message tags (closes #684)
Introduce CaseSensitivity enum class

The enum is a bit more verbose, but leads to more readable code:

str.Equals("foo", true)
// vs.
str.Equals("foo", CString::CaseSensitive)

Deprecate the old Equals() and leave out the length parameter
from the new version => use StartsWith() or StrCmp() instead.
CString::Starts/EndsWith(): allow specifying case sensitivity
Escape message tag values (ref #684)
Add CString::Find() with case sensitivity support
Add CString::Contains() for convenience

This is more convenient and readable than comparing Find() to npos,
which is a common task:

$ git grep "find(" | grep "npos" | wc -l
49
Fix #680 - make channels follow user-level settings when appropriate
Merge pull request #686 from jpnurmi/string

CString improvements
Merge pull request #689 from NuclearW/multitarget-notice+privmsg

Handle multi-receiver NOTICE and PRIVMSG
Merge pull request #681 from jpnurmi/setuservars

Fix #680 - make channels follow user-level settings when appropriate
Merge pull request #693 from jpnurmi/tags

Valueless & escaped message tags
cleanup superfluous semi-colons
const correctness fixes