Fix handling of JSON messages that arrive together

When more than one message was present in Boris's socket buffer at a
given time, the first string handed to json_decode would include junk
after the end of the end of the message, which would then fail to decode
and process.
Clean up callback handling in elisp's boris-call