Make it possible to observe the CommandManager

This allows observers to be attached to the CommandManager which will be
notified of newly registered or removed commands.
Initial implementation of the IrcManager

This patch implements the basics of the IrcManager class, which will
eventually be responsible for establishing, maintaining and curating a
connection between Mineground and an IRC server.

The IrcManager instance will be available through all features via the
getIrcManager() getter in FeatureBase.

The IrcManager is the first user of command observers, and thus receives
notifications whenever new commands get added or removed. When these
commands can be executed from remote sources, they will be stored in a
command set in the manager itself. This allows us to dynamically support
![name] commands.

IRC users will be stored through the IrcUser class. This class extends
the RemoteCommandSender class, and therefore allows us to execute
commands through the existing command code-paths Mineground already
knows.