size default for hash table
Add option to store to parittion data
Move column name resolution to non-internal function
Add shuffle operator before store
Move attribute ref resolution to top-level function
Test of user-directed partition operator
Add dot files to gitignore
Change a myrial example to use explicit partitioning
Merge branch 'master' of github.com:uwescience/datalogcompiler
style
Do not sort the shuffle columns
Merge pull request #196 from uwescience/andrew_partition_on_store

Support repartitioning data from within Myrial
expression.util: typo
myrialang: import utils from expression

I'm sick of typing `expression.long_function`, so use `from expression
import long_function` instead.
myrialang: push apply into apply, projectingjoin

more to do
myrialang: RemoveUnusedColumns

Some operators, like GroupBy and Join construct completely new tuples
after concluding their operation. In some cases neither the operator nor
the output it produces actually need all the columns:

T has schema x:int, y:int.
Query is "select x, COUNT(*) from T;" -- note that y is not used

For these cases, insert an Apply beforehand that drops any unused
columns.

Note that RemoveUnusedColumns and PushApply play off each other. In
practice, we should probably wait for convergence. However, here we just
run each operator twice, followed by a PushApply to round it out.
myrialang: style cleanups
myrialang: clean to RemoveUnusedColumns
optimizer_tests: test pushing applies
test (apply, projectingjoin) column select