Allow dim changes

Had to hack some things around in here.  First don't check instantiation
in eval(), so that it's possible to change dims at all.  Then had to
change how dims are read from the dimension_dictionary.  Various other
minor moves towards tidiness.