JSON encoder abstraction.

This is just a first draft - when will pass review, I can write documentation for that.

It's a response to #33 - of course it doesn't provide a solution for case in that issue, but it allows developer to write own handler (handling different encodings with `json_encode()`/`json_decode()` could be done just as sub-class of `JsonEncoder`).

Other use case - one could use `Zend\Json\Json` encoder or `JMSSerializer` to handle more advanced data processing.