Improve shape evaluation.

Shapes can now be resolved for slice and reduce operations without
evaluating an expression first.
Merge branch 'master' into fix-shape

Conflicts:
	spartan/expr/reduce.py