Switch VariableStore to contain a Map

This should make constraint lookups simpler since the Map is keyed by
VariableName.
Finished initial version of exhaustive solver

This commit has some major refactoring and also includes a JDK 7 build
dependency upgrade.  The newly introduced types are still in a state of
flux and likely will see more changes before stabilizing.