support initial idTest in conditions

Previously conditions had to start with an id (`<foo>`). Update the
parser to accept any test as Soar does (e.g. `(state {<> <s1> <s2>})`).
This changes the structure of `ConditionForOneId`, which now contains a
`Test` instead of a `Pair`. The `getVariable` method is used by
`TripleExtractor`, but for now that is not used, so just put in a dummy
method so everything compiles.
test TCL preprocessor tokens

Tests pass as-is.
support "w" command

With the support of the "w" command, the torture test now passes. Woohoo!