I think we should treat the salt as an arbitrary binary string. So encode it as hex when we send it to the remote helper, and "encode" it as utf-8 only for the (hopefully temporary) case where we're passing it to a node-scrypt module that doesn't accept a Buffer.

Does the remote scrypt helper expect a regular JSON string as the salt? If so, we should fix that too.