Rework how we obtain command handlers

Ideally, each time we request a handler it is
created anew. The `CommandHandlerFactory` makes
this a simpler task.

Cr-Mirrored-From: https://chromium.googlesource.com/external/github.com/SeleniumHQ/selenium
Cr-Mirrored-Commit: cacc0208e34da7d4761fdddb0e54a0a8460fbf84
5 files changed