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.
Merge pull request #22 from cdlm/punctuation-nbsp

Use non-breaking spaces near punctuation