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.
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
Made all the targets phony
fix format of proxy line expected error
bring CHANGES.md up to date
workaround to fix edoc build
add some test coverage for #114
more improvements to #114 test coverage
update CHANGES for v2.7.0 release
Alter the RAW PATH so it's easier to match on it.
return 400 invalid request if method length greater than 127