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
myrial.optimizer_tests: also check that pushing project below join works
travis: raise the nose logging level

Halves or better the test execution time
fix comment
ProjectingJoin: rename columnlist to output_columns

And fixup all over raco
add TODO in PushApply
PushApply: better comment
remove comment PyCharm auto-added
remove redundant recursive call to self.fire in RemoveUnusedColumns
PushApply: replace copy with deepcopy
Merge pull request #202 from uwescience/push-projects

great work.