Replace arguments for toggling socketengines  with --socketengine.
Merge pull request #585 from SaberUK/master+configure-engine-selection

Replace arguments for toggling socketengines  with --socketengine.
Move dynamic_reference and related classes to base.h
Replace hardcoded mode letters, part 2

This changes all remaining Channel::IsModeSet() and Channel::GetModeParameter() calls to use ModeReferences for modes that were created by other modules or the core
Move SetNoticeMask(), FormatNoticeMasks() and ProcessNoticeMasks() from the User class to the snomask modehandler
Replace hardcoded mode letters, part 3

This changes most remaining User::IsModeSet() calls to use ModeReferences for modes that were created by other modules or the core
Get rid of enum UserModes and mark User::modes as private
Deduplicate code in umode_s
m_ojoin Stop hardcoding +Y, move global vars into a class, move initialization code into init()
Stop hardcoding user mode +s