Add two levels to use_c10_dispatcher (#26272)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/26272
```
use_c10_dispatcher: 'unboxed_only'
```
This is the previous implementation. The operator is registered with c10, but only in its unboxed form. No boxing wrapper is generated.
```
use_c10_dispatcher: 'full'
```
This does everything done by 'unboxed_only', but additionally creates a boxing wrapper so the op can be called through the c10 dispatcher using a boxed operator call.
This only changes registration, not the calling path. These operators are still called through the unboxed function pointer.
The final goal is to have 'full' for all operators, but this isn't immediately going to work for all ops.
[namedtensor ci]
ghstack-source-id: 90459907
Test Plan: unit tests
Differential Revision: D17393317
fbshipit-source-id: d629edfb3baede8c4ac869aa1886e512782ed2aa