Minor bug fixes, slight code reorg.

Make sure to return on errors (eventually this'll be easier to prevent when we
have an error handler; you'll be able to just e.g. throw new BadRequestError);
handle download errors; and put DZI-XML registration next to where we use it.
Minor: fix Jade warning.

/path/to/project/views/view.jade, line 22:
Implicit textOnly for `script` and `style` is deprecated.  Use `script.` or `style.` instead.
Bug fix: properly return 500s on image conversion errors.

E.g. deepzoom.py isn't properly getting found/run on my machine.

```
Error: Failed to convert image: Error: Command failed: Traceback (most recent call last):
  File "/Users/aseemk/Projects/Zooming/node_modules/deepzoomtools/bin/deepzoom", line 5, in <module>
    import deepzoom
ImportError: No module named deepzoom

    at __$exports_create__1 (/Users/aseemk/Projects/Zooming/node_modules/deepzoomtools/lib/deepzoom.js:18:24)
    at __tryCatch (/Users/aseemk/Projects/Zooming/node_modules/streamline/lib/callbacks/runtime.js:125:4)
    at ___ (/Users/aseemk/Projects/Zooming/node_modules/deepzoomtools/lib/deepzoom.js:15:131)
    at ___ (/Users/aseemk/Projects/Zooming/node_modules/streamline/lib/callbacks/runtime.js:89:14)
    at ChildProcess.exithandler (child_process.js:641:7)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:735:16)
    at Socket.<anonymous> (child_process.js:948:11)
    at Socket.EventEmitter.emit (events.js:95:17)
    at Pipe.close (net.js:466:12)
    at WriteStream.<anonymous> (/Users/aseemk/Projects/Zooming/app._coffee:70:23)
```

/cc @gasi: anything I need to manually do to have this work?