Reduce duplication in ArrayElement.

The only reason we had a lines parameter was for initializing
contents with it.  You can cut out the middleman and use parametric
fields for both field initialization and access.
Add another Element subclass, LineElement.

Since LineElement extends ArrayElement, we need to call its parent
constructor, and the way we do that is right in the extends clause.

That is, LineElement takes a single line, s: String, which it
then immediately passes on to ArrayElement, that is, Array(s).