Catch errors from pickle.
Get rid of old test_backend, move to appropriate files.
Pull out Node pretty printing to make accessible for other places.
Rename Lazy* to List,Dict,TupleExpr.  Update references.
Some debug logging for tile updates.

Expose dtype field for broadcast objects.
Switch to using a local expression graph to represent local ops.

This is now used for optimization combining, instead of using ad-hoc
per-function folding.  This should theoretically let us code-gen
back to Parakeet/Numexpr compatible code on the worker side.