Tests, heed Tim's advice and emit ARCHIVE_FAILED for entries ...

that cannot be stored (natively) in WARC format.
Fix, an empty WARC archive needs a bit more than 256 bytes.
Hygiene, protect against NULL filenames in _warc_header()

Return ARCHIVE_WARN immediately.
Hygiene, trust __archive_read_ahead() and kick superfluous check.

Heeding Tim's advice, a non-NULL from __archive_read_ahead() is
guaranteed to be of at least the minimum size, therefore no need to
check for this condition again.
Hygiene, use FALLTHROUGH instead of lint's @fallthrough@
Hygiene, always use xmemmem() because memmem() is a GNU extension
Hygiene, set unconsumed slot exactly once for each branch

in _warc_read().  Also kick __archive_read_consume() because the writer
will consume the bytes for us.  So for the EOF case, set unconsumed to 0,
for the non-EOF case set unconsumed to the minimum of the number of bytes
read and the content length.
Tests, provide known-good archive read test.
Set archive format, and archive format name.

This changeset adheres to the previously imported read test.
The archive format is hard-set to ARCHIVE_FORMAT_WARC, while the
format name is the stringified WARC/x.y version designator, which
for performance reasons will be cached between calls to the header
reader _warc_rdhdr().
Check for legal HTTP but illegal unix filenames in WARCs archives.

This changeset will refuse to extract WARCs that contain filenames
a la http://example.com/implicit/content/

There is a todo note in archive_read_support_format_warc.c discussing
possible archive options to extract filenames like those either by
explicit user input or by some sort of heuristic as used in wget
for example.