[CHEF-3382] filter backtraces on cookbook_path

...instead of file_cache_path, which is only correct on chef-client (not
solo).

Also, regex escape the cookbook path(s) to avoid issues with regex
metacharacters in the path(s).
[CHEF-3382] fix for 3382 broke tests calling filtered_bt
[CHEF-3382] fix for 3382 broke tests calling filtered_bt
[CHEF-3385] notifies supports one notification at a time

This effectively reverts CHEF-122. The reasoning for this is to have a
stricter interface, which will lead to more obvious errors when given
incorrect arguments, and to make notifies and subscribes works the same
way. Since users can call #notifies multiple times on a resource, no
functionality is lost.
Ensure that only one chef-client run can happen at a time.

This patch wraps do_run in a locking scheme that provides the
following semantics:

 * Only one chef-client run can happen at a time.
 * Only one chef-client can be queued up to run after the run that is
   currently in progress finishes.
 * Any additional chef-client run requests will wait for the queued
   request to finish and then exit.
[CHEF-867] extract run locking to a class

Also remove waitlock stuff, locking around the run is fine.
CHEF-3276:Fixed rubygems provider to issue a warning if options are passed as hash instead of string && using the omnibus installer && gem binary is specified.
[CHEF-867] default to putting lock in file_cache_path
[CHEF-867] unit and functional tests for RunLock
[CHEF-867] move RunLock code out to its own file
[CHEF-867] inline docs for lockfile config setting
Merge branch 'CHEF-867'
Merge pull request #374 from opscode/10-stable-CHEF-3276

CHEF-3276: rubygem's provider incorrectly handles options ...
[CHEF-867] API docs for RunLock
Merge branch 'CHEF-867'
reduce window for race condition in spec.
Add a gem packaging task for the webui
[CHEF-3383] - regression in cookbook site share

* Chef::CookbookUpload#validate_cookbook was changed to
  #validate_cookbooks
* The cookbook site share command was not updated for the method
* The spec stubbed the return of #validate_cookbook as true meaning it
  wouldn't have tested this change.
Force encoding to binary to prevent stacktrace with unicode input
Merge branch 'CHEF-3288' into 10-stable