Pure python PNG writer

Add @lcampagn 's `make_png`. No need to import from another library.
Just `from vispy.util import make_png`
Again, code de-duplication. Something like this would reduce redundancies:
```
rgb_save = ...
rgba_save = ...
for rgb_a in (rgb_save, rgba_save):
    ...
```