WIP: support combiners for UDAs

[x] Associate an optional decomposable state with UDAs; this guides the decomposition into local, remote aggregates
[x] Expand decomposable UDAs in a new optimizer rule
[x] Test a simple sum UDA using this new framework
[ ] Plumb syntax for specifying combiners into the Myrial language
[ ] More tests!
[ ] Clean up redundancy between built-in aggregates, UDAs

Sanity tests appreciated.