Naive implementation of file input through libav.

By using libav to read files, we can avoid a long list of unsafe fscanf()
statements, and allow for reading more image formats (although not all of
those that would be useful).

The changes as they are implemented now are very naive and do not support
things like TIFF files or JPEG, but it alreayd allows 24-bit color PNG
files (without alpha channel). B/W PNG is not supported (yet) because of a
difference in pixel format.

Since now the "input type" of the file is no longer relevant, remove it
from the verbose output.
Only dump libav detected input format when verbose mode is enabled.
Add black-and-white PNG and TIFF loading support.

PPM and PNG/TIFF use opposite values to represent black and white. Support
both, so that you can process black and white tiff files
directly. Grayscale and colour TIFF is not yet supported.
Implement loading of grayscale PNGs.

PNG files in grayscale format (such as most of the PNGs in the unpaper
testsuite) use an actual 16 bpp format, in which 8 bit define the colour
and 8 bit define the alpha channel.

Discard the alpha channel and only load the color data.
Use the original PNG files to execute the unpaper testsuite.

Since unpaper can now load all these PNG files, there is no reason to
convert them to PPM first. This drops a needed test dependency on netpbm.
Update NEWS file with the libav notes.
Update README with input file format support.

There is still lots to be implemented for TIFF/PNG support to be ready, but at least one can try.
Do not use separate buffer for grayscale/lightness/darkness inverse.

For grayscale image, the same values for the same buffer were returned, so
keep doing so. For colour images, calculating the value on the fly on hot
memory is not worse than reading cold memory.
Add stride value to the IMAGE structure, and use it to access the buffer.

This essentially allows us to reuse the buffer from the read AVFrame rather
than copy it into a newly-allocated buffer.
Remove the bitdepth setting from IMAGE structure.

This simplifies the code quite a bit, although it means that now the output
will be grayscale by default even for B/W input.
Use libav's AVFrame as internal representation and AVFrame for output.

This is a very wide change but it is needed to make sure that the code
works as intended. It also removes a lot of shortcut fastpaths that
probably hard performace quite a bit, but then it offloads a lot of work
back to libav.

The tests' output matches the original output bit by bit, with the
exception of the "generated by unpaper" comment that is gone.

The -d/--depth option is (temporarily) gone, in favour of the -t/--type
option that provides selection of 1-bit (pbm), 8-bit (pgm), 24-bit
(ppm). While right now we don't support any more output formats, it should
be trivial to add this back and collapse the three into "pnm", and adding a
separate "tiff" option.
Input and output match again now, so remove the bogus NEWS entry.

Also revert the tests so that they don't pass the --depth option at all.
Actually remove the --depth/-d option.
Avoid warning with clang.
Add support for getting/setting pixels for Y400A (grayscale PNG).

This allows grayscale PNG images to be read without conversion, using less
memory.
Add support for reading/writing MONOBLACK frames too.

This is the last format that was converted on input, and is used by
black/white PNGs as well as the most common TIFF variants.
Update NEWS and man page with the new values for format.
Remove the oudated index.html file (see Issue #15).

The content is mostly the same as README.md and it was definitely out of
date.

This also allows to remove some content that was useful for the website but
definitely not useful in the GIT repository.
Crush the PNG files in the documentation.
Rewrite the unpaper documentation in Markdown.

This makes it much easier to read in the source, and can be read directly
from GitHub.

Also fix the Makefile.am so that the proper files are installed.