Improve error handling and reporting for installs

This is a sizeable refactor of the way that the Overlay project handles 
downloading and installing artifacts. Highlights include:

* Adds a protocol for BinaryArtifacts and adds two implementations for
 Incremental and Release builds. The protocol includes functions to
 retrieve the remote URL and the download file size.

* Utilizes a HEAD request to determine file size when a metadata file is
 not available.

* Checks for 404s before attempting a download. Fails more gracefully
 when something goes wrong during download.

In order to support all these changes, one additional dependency was added:
clj-http-lite.