Allow knife.rb configuration file to provide any options for knife plugins
Isolate knife config file location methodology. Use new locate method when configuring
Update stubbing order within config spec
[CHEF-3497] don't configure in Knife#initialize

Config changes a ton of global state and is based on the state of the
machine it runs on (most importantly, the user's config file). Running
configure_chef in the initializer makes unit tests extremely fragile
[CHEF-3497] apply config in the desired order

Takes advantage of new mixlib-cli option to keep default values from the
mixlib-cli DSL separate from user-supplied values. Config settings are
merged:
1. Defaults from mixlib-cli DSL
2. Settings from Chef::Config[:knife]
3. Values from CLI options
[CHEF-3497] Require mixlib-cli ~> 1.3.0
Merge branch 'CHEF-3497'