Fix prefix-out and redex for identifiers with spaces

Prefix-out fails when one of the "arguments" has a space or other strange character: 

    #lang racket/load
    (module foo racket
      (define | | 0)
      (provide (prefix-out | | +))
      (provide (prefix-out + | |))
    )
    
    (require 'foo)
    (displayln | +|)
    (displayln |+ |)

The first patch fixes this. The solution is to change a "~s~s" to "~a~a". (note: prefix-in already uses "~a~a") (I didn't know where I should put the test cases). This closes Bug #14761

I also looked for other similar patterns in the Racket repository:
http://git.racket-lang.org//plt?a=search&h=b7d2722d7da3db3a664857f7e0854a08abb2f45f&st=grep&s=%7Es%7Es

I think there are other 6 instances that should be fixed in the redex package. I put the changes in the second patch, but I don't know enough about redex to be sure that this is the correct fix. Please review this second patch carefully before merging.