Clean-up and restructuring

- Delete SSH key functionality as we discussed
- Restructure how we generate commands to do it in code so we can dynamically generate the correct parameters (and actually persist the parameters we need to.)
- Some minor clean-up

@diogomonica I wasn't sure if there was a test that needed to be added here, the functionality is mostly the same, just restructured. It would be nice if we could ensure that the session encoded all the information we need after the OAuth callback, but that might be testing the current implementation too closely without adding anything. WDYT?
Initialize should probably receive arguments to override the defaults.