always send ETag when content-length > 0

closes #1780
be less picky with ENOENT errors in tests

closes #1580
pin dev deps to semver compatible versions
pin deps using semver1

somebody is going to complain that they can't install stuff because
they haven't upgraded npm