Allow a typed field to be a typed list

While it was already possible to force a field to be a list by setting
its type to `list` in the `typed_fields` meta option, there may be times
when the type of the values in the list needs to be enforced as well.
This is now possible by setting the type to `[<type>]` where `<type>` is
any valid type.

Lists of multiple types should be set to `list`, lists of lists should
be set to `[list]`, and the types of the values in each will need to be
checked by the application.

In addition to this change, the message associated with the `TypeError`
is being changed to provide language that's a bit more user-friendly.

References #18