Add assertions for validating a string length range.
Allow descriptor fields to be functions and add unit test for specifying
a custom validation function.
Update readme.