Code Organization

Split code up into multiple classes for purposes of Standardization.
Commands have their own Package, as do event listeners. The Main Class
has been neatly cleaned and organized.

The command branch has been  truncated, and all commands are handled via
a new system of Command IDs and a command processor, which uses these
IDs to determine which command it should execute, thus making for a more
compact, yet more complex command branch. This change also allows for
more a more accurate error detection algorithm, now returning errors
such as "Invalid Sub-command".