Rewrite binary operations implementation

 Previously binary data was stored as `new String(byteArray)` but it is not correct - as stated in String javadoc, it can replace unmappable characters.

As a result, when you save serialized java object it is not possible to deserialize it later.
shouldn't this be different for byte arrays?