JavaSearch -x implementors now "does the right thing."

When run on a method, it first searches for classes implementing
the interface (or extending the abstract class) that method was
declared in. It then filters out any types that don't *actually*
declare that method. This should be close to Eclipse's implementation.

When run on a field or local var, it just searches for declarations.
This is for convenience, since implementors of a var doesn't make sense
anyway and gives you no results---with this tweak, the same mapping
can be used to find the declaration of a var, and the implementation
of a method.

This should resolve #349