Simplify c10 dispatcher (#28314)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/28314
Simplify the c10 dispatcher, making it more easy to understand.
Also, this moves the dispatch decision from the DispatchTable class into the Dispatcher class.
This is required because DispatchTable only knows things about one operator but the dispatch decision will (in future diffs) also need to look at backend-level fallbacks, for example for lazy.
ghstack-source-id: 93872575
Test Plan: unit tests
Differential Revision: D18018736
fbshipit-source-id: 375729d5e307e0622906f8cc9a0b087b94aea2b1