Myrial UDAs

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

I may be wrong, but I have been trying to bias `__str__` to be the human printable version. E.g., we usually want to see `$1` instead of `UnnamedAttributeRef(1, None)` unless we're asking for `repr`.