Add fifth argument to specify bits per pixel for grayscale images

Hi @pkrumins. First of all, thank you for the well written node wrapper on libpng. 

I've extended the Png class to accept a fifth argument which allows one to specify a 16bit pixel depth for grayscale images. Also included is an example of it in action. Since `dynamic_` and `fixed_` `png_stack` did not support grayscale, I did not bother to update them beyond providing the correct 8 bit default argument to Png/PngEncoder classes. 

We could set a default bit depth in the constructor for these classes, but my preference is to explicitly state it. I have no objection if you would prefer this behavior -- just a matter of coding style.