Fix 0-length range responses.

There were two issues:

- file:pread() returns eof in the case when the length of the
  read is 0 bytes, for any offset.  This causes badarg exceptions
  later in iolist_size when the 'eof' atom is encountered instead
  of a binary

- The range-length computation is off by 1 for 0-length ranges:
  {Skip, Skip + Length - 1, PartialBody} would result in e.g.
  {0, -1, eof}. {0, -1} is invalid HTTP according to

  http://tools.ietf.org/html/rfc2616#section-14.16

     A byte-content-range-spec with a byte-range-resp-spec whose
     last-byte-pos value is less than its first-byte-pos value,
     or whose instance-length value is less than or equal to its
     last-byte-pos value, is invalid.

This patch fixes both issues.
Merge branch 'mochiweb' into fix-zero-length-range-response
Add support for possible outputs from 
`erlang:decode_package/3` so they can be handled
gracefully.
bring CHANGES.md up to date
workaround to fix edoc build
Merge pull request #114 from omarkj/decode_packet_support

Add support for all possible outputs of erlang:decode_packet/3
add some test coverage for #114
more improvements to #114 test coverage
Merge pull request #87 from pmundkur/fix-zero-length-range-response

Fix 0-length range responses.
update CHANGES for v2.7.0 release