Typo fixes
typegen support for array types

This will be useful for inline cell data which will use arrays of inline
values.
Change CellClass.fields to a List

When we support multiple variants there won't be single collection
containing all the fields. Prepare for this by switching from a ListMap
to a List
Remove StringLike cell class

StringLike was introduced to share code between strings and symbols.
However, because symbols are immutable the only code that was actually
shared was StringLikeCell::equals.

The upcoming support for inline/out-of-line variants can't support
variants in abstract classes easily. Avoid this issue by getting rid of
StringLike and making both String and Symbol inherit directly from Datum
Initial generalized support for inline cell data

This adds a new cell type called "variant" which is a a cell type that
can only be distinguished manually at runtime. The existing type-tagged
child classes have been renamed to "tagged cells" to clarify this
distinction. The intended use is to have inline and heap variants for
each cell type supporting inline data.

Initially just symbols and strings have been ported as a proof of
concept. Vectors and bytevectors are next followed by records.

This is the initial work required for issue #4