Add hacked up equality operator for record structs.

Apparently, C++ doesn't define default equality for structs.
Add an initial working distributed sum.

I'm shocked that this actually worked. Shocked I tell you.
Massive stdlib changes to make distributed_sum work.

Notable changes:
    - delete -> erase in Annotation/Collection
    - Collection builtins take and return unit_t(s).