If field is required and empty, then set error

(pulled from st4lk's repo. The other commit seemed extraneous)
Handle fields which aren't provided gracefully.
Handle fields which aren't provided gracefully.
Merge branch 'master' of github.com:exitio/schematics
..With tests
Merge pull request #110 from exitio/master

Be more liberal in which inputs we accept, be more concrete about what require=True means.