Topic/basic property tables

From the main commit:

```
This commit tries to start writing some documentation around
how the algebraic structures work and their relationship to
each other. It is very rough but hopefully moves us in the
right direction.
```

I'm not sure this is 100% good in terms of pedagogy but hopefully
it is better than nothing. Maybe using the infix notation is a bad
idea but I tried it with function syntax and found the laws very
difficult to read and reason about.
We are only using idempotent for Lattices where we have commutativity and idempotency, but I did not think that `(a + b + a)  == (a + b)` in general for idempotent. That looks like commutativity + idempotency to me. I can't think of a counter example, but maybe just because I am imagining low dimensional examples.