More work on #12: allow Variables to be specified as a Map
More work on #12: Complete VariableMap interface