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 and has to protect against malicious clients.

The client, however, can request arbitrary amounts of data (for example with `listtransactions` on a large wallet). Having a strict size limit makes little sense.

Fixes #4604.

The second commit contains a slight optimization that prevents a redundent copy and removes a needless c_str which would mess with binary data.