Moved SwitchControllerStackClient into base class and allowed each controller to own its own copy. (It's just a client, and now we don't have to worry about it externally.) Added a lot of comments and finished moving the implementation into the .cpp file.