Get the basic libpng read functions in.
This doesn't actually do anything yet, it just sets the stage for the
real functionality by doing things like checking file validity.
Whoops, png_to_bitmap should always return something.
Merge branch 'master' into read
Merge branch 'master' into read
Merge branch 'master' into read
Add arguments for creation versus extraction.
Merge branch 'master' into read
It's ugly, but I think it's mostly resolved.

Conflicts:
	main.c
Fix merge bugs.
Merge branch 'master' into read

Conflicts:
	main.c
A few more breaks
Add support for reading PNGs.
Not that anything is being done with them yet, but it provides the
functionality. This code isn't as well documented as I'd like it to be, since
there's a decent chance that there's a better way to go about this that I'm
not seeing. For now though, I'll just get something that runs, then clean the
code up after. Since this is basically the reverse of the save function, I
looked at that code a lot, and I'm honestly not too happy with it, so there's
yet another todo.
Change save_file() to save_as_png()
Not sure how I could have possibly thought that was a good name...
Add extraction functionality.
This finally adds the ability to get files back out of the pngs. It is a bit
buggy though, since right now it uses the white EOF pixel to determine the
end. This means that if a file's size isn't perfectly divisible by the size of
a pixel, there will be some garbage data at the end of the extracted file.
Another potential issue is if extracting any data containing 0xFFFFFFFF, the
save function will interpret it as the EOF. The solution I plan to implement
is to get rid of the EOF pixel, and instead make the last pixel in the bitmap
contain the size of the file.
Remove debug line
Change EOF behavior
Make it so that after the last file-defined pixels, the rest of the pixels in
the bitmap are undefined, and the last pixel in the image is the size of the
file. This code hasn't had rigorous testing, and I know there's still bugs in
it, but I think it's getting pretty close to a form I can merge into master.
The makefile test needs to be changed (and the tests can actually mean
something now), and the documentation updated.
Write one byte at a time.
This is probably going to kill write speeds when extracting files, but it
fixes the bug with the garbage data at the end of extracted files. Well, that
assumes that all files are sized in bytes (e.g. you can't have a 9 bit file),
which seems reasonable given I know that's true for memory.
Remove looped read.
Turns out, reading a single byte from a file at a time is a stupid solution to
a problem that was already solved. And that I knew was already solved. One of
these days I'll write code I can look back on code and think "Oh, that was a
good idea," but for now, I do stuff like this. *facepalm*
Better tests in Makefile.
Update user-facing documentation, fix long option bugs