OC-11204 - Exception handling and abstraction

Refactor code to make it modular and proper logical grouping.

Depends on https://github.com/opscode/knife-cloud/pull/53