Use the Berkshelf API Server in the resolver

### changes
* Deprecate all "default locations" in favor of the `source` keyword which points to a Berkshelf API endpoint
* Add the Berkshelf::APIClient for communicating with a Berkshelf API endpoint
* Remove `--skip-dependencies` flag on install/upload. This was introduced as a temporary workaround for our slow resolver/uploader.
* Remove `--path` option for `berks install`. This command + flag combination should be replaced with the more appropriately named `berks vendor`.
* Temporary disable `berks outdated`. This was a BETA feature that can now be properly implemented now that we have an entire view of the universe (see #731).

### refactors
* Locations now inherit from `Berkshelf::Location::Base`
* Gutted or removed many of the Berkshelf locations. Locations still contain location specific logic on how to download and activate the dependency.
* Move all installation logic into `Berkshelf::Installer`
* Gutted `Berkshelf::Downloader`. It now downloads dependencies and attempts to download them from any API endpoints specified with the `source` keyword in the order they appear in the Berksfile.

### follow-up tickets
All of these tickets need to be completed after this branch has been merged
* #580
* #729
* #730
* #731