Several bug fixes/features

Hi,

This pull request is kind of messy since some of the features I didn't expect to be pulled in by anyone. Since github doesn't allow cherry picking of requests, i'm making one request, but I've described each commit below so you can pick what you want to merge.

26d808 and 225506:
Adds resume support for single files. It is incomplete in the sense that it does not deal with multiple ranges, so it is only good for resuming a broken download. These are the commits you most likely would NOT want to pull in.

3cf5 to 5800, 7a4022 and 040f1c:
add a stripPrefix option to deal with routing. Consider for example that you've setup routes such that all URLs of type '/download/file' go to a node-static instance created with root directory 'download/'. In this case the instance will recieve the path as '/download/file', but should check only for '/file'. A stripPrefix of 'download' will fix that issue.

8ab41:
'binary' is deprecated encoding. Instead we set no encoding, receive a buffer object and do a memcpy() without any decoding to the destination buffer.

da628:
 self explanatory in the commit message

adf0ccb:

Fix a bug where stream() always joins with '.' when pathname is passed as null, when we actually want to consider the filenames with respect to the root directory and not the current directory. The current directory of the node process, and the root download directory may be different.

Thanks for a great piece of software to modify.

Nikhil