(PUP-511) Allow nested arrays in titles

Previously there was a disconnect between the implemented behavior and
the specified behavior. The specification did not allow arbitrarly
nested arrays of titles (e.g. `[[title1], [[title2], default]]`), but
the implementation did. After some discussion it was determined that the
implementation's behavior is desired and so should be allowed.

This updates the language spec to allow nesting of arrays for titles.
This is specified by using a special type specification in the grammar
that relies on generic, recursive types. Although such a capability
doesn't exist in the puppet type system, the expression here should be
clear enough.
Maybe we should add this type since this may be a common pattern in Puppet code...