Fix bug in handling local relative paths
Modify handling of streams in get() and put() methods. If user specifies autoClose: false as an option, make sure that we call destroy() before the promise is resolved. For some specialised streams, setting autoClose: false is necessary to prevent additional read error when attempt is made to read from a stream which ahs already been automatically closed (for exmaple, when using a stream to limit throughput load).