Add argument checking for remote-directory
Improve propogation of cause in throw-phase-errors
Improve error handling in defmulti-plan
Allows for using crate-install by passing settings

Factors out install-from multi-method from the previous install
multi-method, which is preserved for compatibility.
Don't slurp files to calculate md5

Avoids out of memory errors on transferring large files from localhost.

Fixes #309