Refactor plugins for increased maintainability 

The major highlights of this refactor are:

- Create a Knife::ECBase class for shared options and methods
- Move all Chef::Config mutation into a single class
- Break up the long #run functions into shorter functions
- Various style cleanups to get it closer to passing rubocop