Rework some GZipWriter construction logic to fix #1088

* Fix open->newInstance sequence so initialize has the right arity
* Process level and strategy on the way in
* Pass level to jzlib
* Peel off opt hash correctly

Still to do:

* Pass strategy to jzlib
* Match MRI call args for deflateInit2
* Other tweakery to match MRI logic.

See also #1108