Added #features and #supports

- added #supports? and #features methods
- added a DSL to declare support