Fix source lookup for instrumented classes

Once I include DataMapper::Resource, which defines a lot of
additional methods in dm-core/support/hook.rb, the "popularity"
of my own source file ranks lower than first, so candidate(0)
returns the DataMapper source file.  However, none of the REs
returned by #class_regexes matches because my class is obviously
not defined there.

This fixes the problem by re-defining #primary_candidate so that
it filters out obviously invalid candidates.
Avoid returning nil in #primary_candidate

When there is no suitable candidate, instead of memoizing and
returning a nil value, the #primary_candidate method should
still return the rank 0 candidate, or raise an error.
Merge pull request #923 from ustuehler/patch-1

Fix source lookup for instrumented classes