Decoder
The qoi_header is specified as knowing the width, height, channels, and colorspace. I figure this information would be captured by the decoder, if anywhere. I've added more properties to the struct, and created a new, fallible construction function.