Resource streams improved: Filter chain hooks, byte range support

This allows for support of:
- Obfuscated fonts (https://github.com/readium/SDKLauncher-Android/issues/44)
- HTTP range requests (https://github.com/readium/SDKLauncher-Android/issues/29)

This fixes the following issues:
#132 - Reading filter chain aware byte streams should be more clear now (PackageResource helper class)
#103 - This is fixed for non filter chain byte streams (now called raw input streams)

Potentially fixes https://github.com/readium/SDKLauncher-Android/issues/22
Just a thought (nothing to worry about now, only a future optimisation / correction): `length` is directly correlated to the arbitrary size of audio/video chunk requests from the underlying media engine, possibly a bit large for a mobile device. My previous comment (actually below this one) mentions correlating the size of byte buffers (fixed 16kB) used by the HTTP server to pull data from the response's stream: if this change was implemented, then `tmpBuffer` used in the `ReadBytes()` calls would more closely match this value, and the underlying calls to `filterData()` (in cases where Content Filters / encryption come into play) would match.
Once again, not a show-stopper at all, just ideas coming from our previous experience in the iOS / OSX launcher apps.