(Fixes #32) ListField now supports types.

ListField now requires an EmbeddedDocument type when initialized. When items
are added to the list, ListField ensures they are of the correct type.