Refactor IssuableFinder to extract model-specific logic
I suggested this in https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/16492#note_59560867: we should be able to use the class hierarchy to specialise the issuable finders, rather than shoving everything in IssuableFinder
and doing explicit checks there.
The only current example I found in CE was due dates, but we also have weights in EE. I'll create an EE MR if this one looks good.