make UDA emit clause optional
Test of uda without emit clause
introduce state for decomposable aggregates
Introduce a rule for compiling distributed UDAs
Test that optimization doesn't corrupt non-deomposable UDAs
Move plan creation to a helper function
Test of optimized, decomposable UDA
comment for decomposable uda state
Add some checking to the physical plan for decomposable UDAs
move statevar to its own module
style fix
Add type checking for state vars
Merge branch 'master' into whitaker_uda_combiner

Conflicts:
	raco/language/myrialang.py
query_tests: test uda with multiple columns

Exposes bug hinted at https://github.com/uwescience/raco/pull/325/files#r17342664
query_tests: make more robust
Add decomposable aggregate syntax to myrial
Use a named tuple for decomposable udas
Add some sanity checking of argument lists
Check arity of remote aggregate emit list
Check for duplciate decomposable aggregates