Create BoxedKernel as a subset of KernelFunction (#82267)
This extracts the boxed kernel representation from
`c10::KernelFunction` and elevates it to its own type. This makes
working with boxed kernels marginally easier and also allows working
with boxed kernels without including the machinery to handle unboxed
which is fairly heavy since it requires `ivalue.h`.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/82267
Approved by: https://github.com/bdhirsh