Refactoring of the Command processing system

The command processing class has been split into two seperate objects,
one keeping track of the classes which contain commands and another
which keeps track of the methods which the commands map to.

The code should be much easier to follow as a result.
futher simpfied command processing logic
changed the help command to use lists rather than arrays
rewrote tests to work with collections
made command node build it's self to avoid having the command processor care about it's internals
assertions to check command arguments
changes/fixes in method testing
fixed unit test command arguments
Merge pull request #49 from unitycoders/command-manager

Command manager