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.