Add support for 3-digit hex color codes

An alternative notation for hexadecimal colors is to supply a single
digit for each channel, whereby "abc" represents "aabbcc". A 4-digit
notation could follow this pattern in denoting opacity, but the idea
doesn't seem to have caught on, so those are not implemented herein.

This patch includes a moderate rewrite of ChunkyPNG::Color.from_hex
that might not be to your liking, but all the tests (including the
new ones) pass, and there's no significant change in behavior.