Handle non-200 responses & don't cache them
. Handle 404's on index by not retrying and simply returning the cached content
if availabled. Otherwise return the error content from the server.
. Handle non-200's by retrying and returning the last error content from the
server after retrying.

This commit fixes #33
Ensure no current tests are broken

Fake the 200 response code in the tests.
Check for an error before trying to get the status code out
Change the signature for guard release to include errors

So we can return upstream errors when requests are blocking
Fix lint errors
Fix gjslint errors.
Add more test coverage for upstream 500 responses.

Also swallow up the error if we succeeded to find the package
regardless. The client doesn't need to know about it.
Allow for returning the same error response when blocking

Little bit gross reading the whole stream into memory but it should be a small JSON error response.

Also added tests for 404s and 500s in general.
Rename the variable back to fullpath as that is all it is now
Remove unneeded data parameter
Fix lint errors
We don't need to pass the error through the guard

The error is contained within the shared resource object. Err.
Remove unneeded test function.
Make the makefile cross-platform

You'll need gnumake installed to be able to run "make"
Merge pull request #43 from CL0SeY/master

Proper remote error handling (404's, 500's)