Allow Range requests beyond the resource length

Fixes #17.

Range requests are valid as long as part of the resource will be returned.

This change fixes EPrints returning HTTP_RANGE_NOT_SATISFIABLE for ranges that
extend beyond the end of the resource.

Range requests for zero-length resources will now always return
HTTP_RANGE_NOT_SATISFIABLE.

Requests made with a badly formatted Range will now return HTTP_BAD_REQUEST.