Refactoring Validation To $rules

We'll refactor the validation in Surge to use the new $rules property and clean up other small areas of re-use.