Enforce type of the Fields when set

Add a enforce_type method and call it on __set__ to make sure that
the stored value type is consistent.

enforce_type is aliased to from_json for the most basic types
Update tests to test Fields setting in addition to loading
Run enforce_type on the supplied field default
Make enforce_type an optional flag, to avoid conflicts
Add warnings for cases where enforce_type would change behavior
Style fixes for the enforce_type branch
Move assertDeprecationWarning to increase readability
Fix warnings for unicode values (+ style)
Merge pull request #200 from FiloSottile/enforce_type

Enforce type of the Fields when set