fix handling of does and DOES
does has no defined meaning in core. It is a convention established by
Moose-like modules. In Moose/Moo/Mouse, does checks for roles only, not
parent classes. $_does should not try to fall back to calling isa.
$_call_if_object shouldn't have any special handling for does or DOES,
it should just do exactly what it was asked to. But it especially
shouldn't have special handling for things like 'Does'.
Because of these requirements, the implementations of does and DOES have
to be separate from what isa and can do.