Merge branch 'master' into bmyerz-common-subexpression

Conflicts:
	raco/clangcommon.py
Add case statement to myrial grammer

Conflicts:
	raco/myrial/scanner.py
Add Case expression to raco
Add unit test of binary case statement
Fix variable dereference
Test of ternary case statement
Test of case statement with aggregate
to string method for case expression
JSON compilation of CASE expressions
Unit test that combines CASE expressions with unbox
Merge pull request #140 from uwescience/andrew_case_statement

Add case statement to Myrial
Add example join query
Associate a has_been_pushed variable with each selection conjunc
Use has_been_pushed variable in selection pushing
Function to compute fields accessed by an expression
Function to rebase an expression to a new column offset
Generalize logic for seleciton pushing
Reorder order of joins in join example
Fix up optimizer tests to reflect selection pushing
Rename rule to PushSelects