Any occurrence of a double quoted string containing no blanks must remain untouched:
ex. "freddy" --> "freddy"
I have tried using sed but my results suggest that sed's 'greedy parsing' is getting in the way. Because of this, I had to repeatedly execute my sed script to get the desired result.
The requirement regarding leaving double quotes around a field if there is no space is the difficult part. Try the following and please report back on how it worked out. I am sure there is a more efficient way of doing the work but this should work for you.