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.
Get rid of crypto warnings

Also should be backwards compatible options back to R14 based on
compile macros in rebar
Merge pull request #1 from heroku/proxy_protocol

Proxy protocol
Merge pull request #2 from heroku/proxy_protocol

log and exit on proxy protocol line parsing failure
Merge pull request #115 from heroku/R16B01

Crypto leap forward for R16B01+
Made all the targets phony
Merge pull request #116 from doubleyou/makefile-fix

Made all the targets phony
fix format of proxy line expected error
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
Mochiweb master merged
Alter the RAW PATH so it's easier to match on it.
Merge pull request #3 from heroku/authority_form_fix

Mochi Master and authority form fix