Added some logic so it can handle multiple Github configurations

With this added logic you can use multiple Github organizations and/or
Github Enterprise organizations. This code doesn’t change the default
behaviour, but it does change the github config section from being a
string with a single entry (access_token), to an array with one (just
the one ‘access_token’ entry) or several entries (depending on your
config/setup).
Updated default value to match new type
Tag mercurial specs so they can be excluded when needed.
Don't install when uploading

This commit fixes #1037 by removing the Berksfile#install procedure
from the Berksfile#upload method. Instead, the uploader now relies
entirely on the lockfile and universe to upload dependencies.

The airity of Berksfile#upload is now changed to accept the list of
cookbook names as strings, or an options hash, or both.
Update documentation for new Berksfile#upload airty
Return the list of cookbooks uploaded
Move the options hash into the ridley_upload
Move upload filtering logic into its own method
Add lifecycle features for testing long-running Berkshelfisms
Check nested dependencies when determining if a lockfile is trustworthy
Add the ability to ignore top-level dependencies when removing them

There is a use case, mostly when reducing a lockfile, that you want to
safely remove a nested dependency from a metadata or path location. This
commit adds a new :ignore key to dependency? and remove methods that
tell Berkshelf to ignore the given dependency when checking for deeply
nested dependencies.
Reduce the lockfile including deeply nested dependencies
Update specs for new lockfile trusted? method
Actually use the correct test

Turns out, we had a bad test. `git blame` says I wrote it. I'm gonna fix that...
Merge pull request #1058 from berkshelf/sethvargo/fuck_dependencies

Recurse into transitive dependencies when lockfile trusting
Standardize on CookbookNotFound errors

Fixes #1041
Standardize on DependencyNotFound
Move DuplicateDependency error text into errors.rb
Move InsufficientPrivledges error text into errors.rb
Move CommunitySiteError error text into errors.rb