Command line

I reimplemented some of the core ideas from Matheus' command line branch on game into engine, as that's where a command line should probably exist. Commands can be added at the game level by extending `Command` (see `Echo` for an example) and calling `Command::registerCommand` somewhere in the game code.

This current version has some really ugly printing issues, but the basic framework is there to put real functionality into it.