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.
But if we're not type-checking anything and just returning EPEEL for everything, we can't distinguish what went wrong, it would make more sense IMO to create GITERR_PEEL since the way you're describing it, EPEEL would describe what area generated the error, rather than what the error is.