replace FieldCollectionField with ListField

Replaced the original FieldCollectionField with the more flexible
ListField. Type checking is optional with ListField, and it has a much
more pleasant name.
add DictField