Myrial UDAs

This PR adds UDAs to Myrial.  JSON compilation is not implemented.  Also, there is no support for combine/merge.

I think we could simplify lines 1034--1043 to:

```python
if any(not isinstance(agg, DecomposableAggregate) for agg in op.aggregate_list):
    ... bail code
```

We don't use `decomposable_aggregate` other than in the `if` conditions / `assert`