Create a coercive list type.

This commit creates a "CoerciveList" data type, which will ensure that
items put in lists within ArrayFields conform to their datatypes.