Improved the Command - CommandFactory implementation.

* Moved from 'init' method to constructor.
* Expected format for the constructor described in the Command
interface comments.
* Distinguish between exceptions that occur during construction of the
command, log these and inform the user of an error; and exception
occurring during the execution of the command.
* Better error handling for commands.

To do:
* Add 'help' method to the Command interface.
* Catch IllegalArgumentException and automatically display help()
information to the user.
Moved IRC command implementations to separate plugin package: irccommands
Improved error handling for commands.

In case of bad command usage, throw an IllegalArgumentException.
IllegalArgumentException will be caught and handled specially. Whenever
IAE is thrown, it will be caught and command.help() will be called so
that we can receive additional usage instructions. The error and the
help information will be thrown inside a BadCommandInvocationException
which will be handled by the appropriate OperationSet.

In case of such an event, a system message will be fired with the usage
instructions as to inform the user on how to use the command.  Other
exceptions will be logged as an error, as they are not expected and
considered to be an implementation issue.
Modified commands to make use of IllegalArgumentException handling.
Display error first, then help text, in system message feedback.
Lowered logging severity and added clarification for case where lastMessageUID cannot be found, as there is a standard use case in which this happens.