FIX: Fix tests on windows, remove dep for tests

This PR proposes two related things:

1. It makes `requires_img_lib` skip tests on Windows. This is because, for some odd reason, importing PIL breaks tests on windows. Cyrille and I have both experienced it, but I couldn't track down why.

2. It adds an `ext` for pure-python PNG reading/writing. This is useful because it doesn't require PIL or imageio to be installed. In my experience PIL often has bugs, so I'd rather avoid using it if possible. And imageio does not have such widespread use, so we can't rely on people having that, either. This seems like a simple solution for basic PNG support.

Let me know what people think. Ready for review/merge from my end.
What's the reason to use `np.array` instead of `struct.pack` ?
And the reason for `& 0xffffffff` ?