Refactor PartialState and AcceleratorState (#2576)
* Refactor AcceleratorState
* Should be near complete now
* Last missing piece
* Make my way to the acceleratorstate
* Include update to global var
* Don't use global
* gpu -> cuda
* Don't use update for dict, easier to read
* Fix tests
* stash
* Getting closer...
* Needed to spawn at the very end after env was setup
* Explain set_device before deepspeed
* Make docstring more accurate
* Early return insteaD
* Delineat blocks
* Make prepare_backend return state + backend for clarity/less magic
* Check if it's None and then return
* Use a dataclass
* Forgot one
* Clean
* Style
* Docstring fix?
* Fix deepspeed
* Move slighly
* Final fix
* Fix state for deepspeed
* rm comment