Formatting
Return userInfo as a JSON string, not a Map.toString

It's unfortunate that we have to parse the JSON returned and then
re-encode the user_info portion to JSON for passing to the user,
but this is how the API was documented to work.

In a future version, it would be nice to accept a UserInfo object
from the library user and populate it using Gson.

Also update the readme to reflect that fact that user_info MUST be a
JSON hash, it is not actually an arbitrary string.