Refactored some stuff and got it compiling:

 + GetResult is back in the Proxy object, it was way too un-wieldly as a
   command on its own
 + Commands are now in the 'Command' namespace
 + Command::Base is a friend of the Proxy object, and provides access to
   log, in and out - to all command child classes
 + SayNumber is the first working (hopefully) expample of a "command as
   a class"
 + All commands have a int result() const; method that returns their
   result;
 + Error checking for commands should be done by over-riding checkResult
 + Execution for a command is done by simply calling the instance of the
   command class. It is a virtual function, so you can pass around a:
   *Command::Base aCommand; and call it: aCommand(); also the error
   checking is virtual so it'll throw BadResult, if the result is not
   what the command class expected.
Added an experimental new way to call commands.

It helps by letting you call new Command, and reference it's base, but
it makes sure you don't get any memory leaks.