peel: reject bad queries with EPEEL

There are some combination of objects and target types which we know
cannot be fulfilled. Return EPEEL for those to signify that there is a
mismatch in the user-provided data and what the object model is capable
of satisfying.

This should resolve #2627.
Asking for a blob when you have a commit or tree is a bad query. Asking for a blob from a tag is not.