Added documentation and new Monoid to Elem

`Elem`s can now be tagged to use a different Monoid instance that
lines up `Elem`s horizontally instead of vertically which is the
default behavior.

Also, some more documentation was added to the source code