Refactoring usage of command executors in .NET.

We now use the same algorithm for creating and using a "command executor"
for all current driver implementations. This removes some of the
differences between Firefox and other implementations. It also prepares
the way for unifying the construction of drivers using a common base Options
class.