Introduce validation method and class in XBlock API

@cpennington and @dmitchell please review

You can see the Studio extension of the Validation class in common/lib/xmodule/xmodule/validation.py in https://github.com/edx/edx-platform/pull/5710 (which is still WIP so is not yet commented or tested).
I actually think I am going to get rid of the add operator because it doesn't make sense for StudioValidation instances (it is not clear what will happen to the summary field, especially if both StudioValidation instances contain a summary). Instead I will have an add_messages method so it is clearer that only the messages are getting added.