Don't silently store all uncaught exceptions

Fields are responsible for determining which errors are stored

resolves #60
Raise ValueError if invalid values are passed to List field
Use Field's error attribute where appropriate
Deprecate error parameter
Merge branch 'feat/exceptions' into dev