Remove OnUserPreNotice and OnUserNotice hooks, add MessageType argument to OnUserMessage and OnUserPreMessage

All modules (except m_nonotice) that perform filtering on messages have common logic for handling PRIVMSGs and NOTICEs and most of them run the exact same code in both cases
Add support for detecting C++11 variadic templates.
Merge pull request #548 from SaberUK/master+variadic-templates

Add support for detecting C++11 variadic templates.
Fix msvc detection of variadic template support