Only closing the filesystem handle if it exists

In the case of readURL, if the url doesn't point to a torrent file, the decoding will fail, but there's not actual fd to close, so an exception is thrown from the catch block of readStream.