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
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
Remove unused error classes
Standardize on what an error looks like
Fix failing cuke
Remove Berkshelf:: prefix on errors
Use quotes instead of weird backtacks
Added location_type :uri

This allows berkshelf to download gzipped tarballs from arbitrary urls.