Console commands

Reworked the console command system. Breaks input handling, which will be fixed with #16.

There's two interfaces:
- `ICommand`, which defines only a parameterless `Execute()`
- `ICommandManufactorum` (because factory sounds stupid), which defines a few properties like name and description, and a `MakeCommand` that receives a string array of arguments and creates command instances.

When a command gets parsed, the game gets a list of all classes that implement `ICommandManufactorum`, finds the one that has the matching name, and calls its `MakeCommand` function with the arguments received.

Resolves #7.