Add compound field types

Implementation for #560

* ListField, ListOrObjectField, DictField compound field types
* Also, for BaseSerializer.from_native, give files parameter default of None