improved json parsing

To follow up on this issue:
https://github.com/rabbitmq/rabbitmq-java-client/issues/4

I did some adjustments on the JSON parser as follows:

* it now remembers if a string was quoted with single or double quotes and deals with both scenarios properly
* some cases of bad json were going into an infinite loop, it now throws an exception
* unneeded backslashes (something like \$ for example) now return the literal character instead of throwing it away
* test cases created for the above and just for json functionality in general

Please merge this in so makes it into your next release.