Allow for the use of nested rules

Allowing for nested rules and then utilizing those rules by setting a context on the validator allows you to use the same validator class for instances where rules only differ slightly. For example in the case of creating a user vs updating a user.

Tests and Documentation included in PR.