Remove size limit in RPC client, keep it in server

The size limit makes a lot of sense for the server, as it never has to
accept very large data.

The client, however, can request arbitrary amounts of data with
`listtransactions` on a large wallet.

Fixes #4604.

A second commit contains a slight optimization that prevents a redundent copy and a needless c_str which would mess with binary data.