CLI Fixes

Fixed two problems with the CLI class and its supporting classes:

1. It was impossible to reset the CLI class' internal state, which made it impossible to reuse a CLI object across restarts.  A ResetState method has been added to ameliorate this problem.  It will not, however, allow panic states to be reset.

2. It was possible during a panic for the Console class not to reset the original console properties.
Chat Fix

Fixed a bug (not checking for a null pointer) which was causing attempts to send chat messages to the server console to SIGSEGV.
CLI Front-End Fixes

Fixed two issues with the CLI front-end:

1. The CLI object's state was not being reset across restarts, meaning that restarting the server would restart and then immediately shutdown the server.

2. The program's help incorrectly specified that "chat" and "log" (rather than "/chat" and "/log") should be typed to switch views.
/shutdown Update

Brought the /shutdown module up to date.  This included a sizeable rewrite in addition to several other, specific changes:

1. The module now supplies two commands -- leveraging the new and improved command module -- "/shutdown" and "/restart", which moves restarting to its own command, rather than an option on the shutdown command.

2. The memory header -- which, as far as I can tell, was never needed -- is no longer included.

3. The new permissions system is used, rather than the old op system.  This, combined with the fact that both shutting down and restarting the server have been moved to their own commands, allows users to be granted permission to restart and shutdown the server separately.

4. The classes etc. in the module are no longer in the MCPP namespace (I don't know why they were in the first place).

5. The INSTALL_MODULE macro is used.

6. The mod.hpp header is properly explicitly included.