Fixed URL parsing issue for PhoneGap (and other transports)

@drtriumph - For PhoneGap (and other transports) we return the auth response payload by placing it in the querystring of a URL. If some data in that querystring contained an `&` (encoded as `%26`), we would incorrect split up the payload since we tried to split it on `&`s after decoding. The correct solution is to do the split on `&`s and then decode everything afterwards.

I also cleaned up the error reporting for a few transports so they are not as generic.