Improve French typography

Non-breaking spaces before :, », %, and after «.
Thin space before !, ?, ;.