Implement different representations for cons cells

After immutable cons cells are introduced #6 we should implement more efficient representations for them that are type-specialized.