Add support for loading a static list of plugin files.

If a file ~/.chef/plugin_manifest.json is present, knife will read a
list of plugins to load from that file rather than scanning all rubygems
for knife plugins, which can take a long time depending on hardware,
number of gems, rubygems version, ruby version, etc.

The format of the plugin_manifest.json file is:

```json
{ "plugins": {
    "knife-ec2": {
      "paths": [
        "/home/alice/.rubymanagerthing/gems/knife-ec2-x.y.z/lib/chef/knife/ec2_server_create.rb",
        "/home/alice/.rubymanagerthing/gems/knife-ec2-x.y.z/lib/chef/knife/ec2_server_delete.rb"
      ]
    }
  }
}
```

This leaves us opportunity in the future to modify the format in
accordance with any behavior changes in knife. For example, if knife
were modified to load commands on-demand, the format could be adapted to
support this (and cache help information so `knife -h` would run
quickly).

In the near-term this should be regarded as an experimental feature, and
users are on their own for managing the content of the file.
Merge branch 'plugin-manifest'

Fixes CHEF-4909