UDAs in Grappa

- [x] compile to source
- [x] uda tests
- [x] run tests on Grappa
- merge to master before review: 
  - [x] #343
  - [x] #345 

- Leave proper handling of DecomposableUDA for later PR.
The status of this is that for no-key aggregation, grappalang requires a UDA to be decomposable. Most of the logic for no-key UDA is already there. For 1-2 key aggregation grappalang does not support Decomposable UDA. Grappa program needs to define a combine_state function. Skip test in https://github.com/uwescience/raco/commit/17a2dbabb18f708412f915a475e3f2f0aafc39fe. Add the functionality in #346 .