Add attr() and item() markers to indicate requiring a particular attribute or item of a required type.
Remove support for class-based callables for now. 

During development and initial real-world testing, they weren't needed. If it turns out they really are needed, they can be brought back later by reverting this commit.