Handle urls containing spaces

Currently if you have an image with a space in the URL, say `my image.jpg`, the handle_404 function receives `$url` as `my%20image.jpg`.  This doesn't then match the image on the file system.  This fix decodes the URL first before looking for it in the file system.