WIP: validation message generalizations

@talbs I have these code changes (which are not close to being ready for code review!) on my sandbox. Here is a test course you can use (staff@example.com):

http://studio.cahrens.m.sandbox.edx.org/course/brian/brian/brian

I wrote up several questions and thoughts in https://openedx.atlassian.net/browse/TNL-704

There are also some comments directly in component-validation-messages.underscore
I feel like this method could just be `validate`, rather than `validation_messages`. It's more concise, and is a verb (as befits a method), rather than a noun (as a noun, I might expect it to be an `@property` instead).