Support for remote EPUB files using partial fetching with HTTP Range Requests

Hi!

This pull request contains experimental support for fetching from remote zipped EPUB packages using HTTP Range Requests / Partial Responses (also known as byte serving).

I recommend pulling onto an experimental branch as it involves significant changes to public APIs and is just a proof of concept.