rearrange code to ensure that valueIsAllowed is called for null and undefined values, too; this means valueIsAllowed functions must now return true when the value is null or undefined and the field is optional; fixes #30
fix issue with validating required subarrays when operators are used; fixes #31
pass correct fullDoc to valueIsAllowed
update docs and bump version