Added AbstractCommand class and IllegalCommandException.

All of the commands need a constructor that calls AbstractCommand.