Ensure `callee_id`s are body owners This PR makes the `callee_id` argument of Clippy's `implements_trait_with_env` optional, and when it is passed, ensures it is a body owner. #118661 added the `callee_id` parameter to alleviate an ICE. Specifically, the `callee_id` is used to determine an "effect arg" in certain situations. Frankly, I [do not completely understand](https://github.com/rust-lang/rust/pull/118661#discussion_r1449013176) what an "effect arg" is. But the code that determines it seems to require that `callee_id` is a body owner: -1ead4761e9/src/tools/clippy/clippy_utils/src/ty.rs (L286-L288)
-1ead4761e9/compiler/rustc_middle/src/ty/util.rs (L834)
-1ead4761e9/compiler/rustc_middle/src/hir/map/mod.rs (L372)
In the current head, some def ids passed as `callee_id`s are not body owners. This PR fixes that. cc ``@rust-lang/clippy`` r? ``@fee1-dead``