Fix cancel methods
Add check that method exists in Capability.__getattr__.

This makes it play nice with hasattr