Add small exists() util for testing for both null and defined values
Add validation support to State
Change ChoiceState to use the State's new validation support
Change FreeText to use State's new validation support
Fix docstrings after adding validation support to State
Better description in StateInvalidError's docstring
Merge branch 'develop' into feature/issue-80-custom-state-validation
Merge branch 'feature/issue-80-custom-state-validation' into develop