Bound validations

Updates validation support mixin to use computed properties instead of observers. Also adds tests for error handling semantics.

Note: Branched was developed primarily looking at `eui-input`. Other components should be looked at/tested with reimplemented mixin before merge into master.

Note: When merging branches like this they should always be merged with `--no-commit`, re-built, then merged.