Add UniformElement.
Change LineElement to extend Element instead of ArrayElement.

It doesn't really make logical sense that LineElement "is-a(n)"
ArrayElement.  Rather than inheriting from ArrayElement to get the
array-like behavior of contents, instead just compose on Array
directly.

We should favor composition over inheritance for code reuse,
after all.