Refactor for improved testability and readability

This substantially refactors knife-ec-backup-- adding unit tests
and (hopefully) improving the readability and maintainability.

Highlights include:

- Simplified #run methods that give new readers of the code a
  better overview of the steps of the process.

- Smaller functions overall facilitating more targetted unit
  tests.

- Removal of some extraneous cruft

- Increased test coverage.  The coverage is still abysmall (54%),
  but that is 54% more than when the 2.0 branch started and we
  are in a better place for adding more tests.

Not intentional.  Definitely need a cleanup pass.  `ui` should be used everywhere.