Nested Validation Sets

I'm stacking this on top of the changes for #33, so that the merge stays clean; once that branch is merged the line count here will drop down.

`nested` allows the user to write more granular validations, then compose them up into larger, full-map validations. Let me know what you think!
here's the new code. The function above is from the previous pull request (#33)