Add nested relations

This branch will add support for nested relations. It will add `#nest` and `#unnest` operators to `Axiom::Relation`. It should add an `Axiom::Relation` attribute type. It should also propagate materialization, insertion and deletion across nested relations.

* [x] Add `Axiom::Attribute::Relation`
* [x] Add `Axiom::Relation::Operation::Nest` and `Axiom::Relation#nest`
* [x] Add `Axiom::Relation::Operation::Unnest` and `Axiom::Relation#unnest`
* [x] Refactor `Axiom::Relation::Nest` and `Axiom::Algebra::Join` to use the same object to build the join index.