Improved API, some new functionality

Makes it a lot easier to manage commands, since each command class now
contains all the information the command could contain (instead of the
struct).

There's still some things to figure out.  I'd like to get some kind of
command completion in here, and history needs to be implemented.  Help
is now also a lot better, though.  Additionally, number of arguments is
enforced.