Refactor model validate into a function
Fix strict validation
Add some docs to validate function
Test for partial data defined in context
Refactor instance level validation into a function

The idea is to move validation functionality to external functions
to reduce the coupling to the Model class, so that validation can
possibly be performed on other structures later.
Merge pull request #123 from nKey/functional-validate

Model validation as functions