added input builder support for creating inputs with various attributes
created matchers to handle making our matchable properties more extensible
updated the library to use matchers, and to match against names and classes
Merge branch 'class-registration'
Added support for registering constraints by class and by name, rather than just by type.