refactored command parameter system again. IsValid() works now, as does getAsCommandString().

And finally, in a shock announcement: UNIT TESTS.