SC.Request should not try to SC.json.encode the body when isJSON is true...

... and the provided body is already a string. 

SC.Request doesn't make overriding the way an object is JSON.encode()'d very easy without monkeypatching. 
A use case for overriding the default way of encoding is when a server requires stringified functions in the JSON request. It is much easier to be able to custom encode it and still send it as JSON. However, the current implementation will re-encode the provided string, causing double escaping, and consequently invalid JSON.