Cut lang check before reinitialize codegen
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.
Hacked dims out of codegen

Previous commit has Codegen be reinstantiated whenever QCML.codegen is
called.  This is right given that QCML.codegen() can take *args
**kwargs, but didn't help the dims resetting issue because the shapes
are in the parse tree, so even if Codegen is recreated, the shapes are
all already instantiated.

So I changed shapes so that they can have their dimensions changed even
if they have already been instantiated.

That fixed dim resetting to work correctly, but then we were redoing the
work of setting dims all over base_codegen.  It seemed to me that my
proposal from earlier today was better: to not call shapes.eval()
lazily all over codegen, but instead to try to get all the shapes re-evaled
with the new dims at the beginning of codegen.

Then it seemed maybe it should be done before codegen even starts.  So I
put it into the QCML.dims= setter function.  Now when you set dims it
traverses the parse tree and attempts (!) to call eval(dims) on all the
shapes.  I think I got all of them, but this should be checked.

Hopefully it's not too drastic a change; I think it's cleaner this way.
Bugfix
Tried to update tests, but not sure how to run

Trying to run test from command line gets import error ("relative import
not in a package"), so not sure how to check my edits, but hopefully
this fixes...
Merge pull request #28 from chinasaur/flexdims/1

Flexdims/1