added ability to use prevalidate with complext objects in a hash as a pa...

...rameter

This current library validates complex objects just fine (issue #224), however, the erros object is not being populated with the errors from the complex object.

This PR fixes issue #249 

I did change the preValidate signature param name (there were a lot of 'value' floating around), but can easily change that back.