Allow BlockscoreError to initialize when json_body passed in is empty

I ran into a weird problem and traced it to here. There was a blockscore error, and then there was an error in blockscore trying to initialize the error.

`undefined method `[]' for nil:NilClass` used to result from `message_desc ="..."` because by default json_body was nil. Now it is defaulting to an empty hash, and I ensure that hash has the `"error"` key.

It would be great if this could find it's way into a 3.0.X release as well as the latest 4.0.X release :)