Use non-breaking spaces near punctuation

This is to follow proper typography. Maybe the markup processor should take
care of this, e.g. with a filter like Smartypants or Typogruby.

In french, non-breaking spaces go inside guillemot quotes, and before double
punctuation signs :!? No spaces at all inside parentheses or before small
punctuation like comma or period. For em-dashes, the rules are less fixed so I
left them as is.