Bug 1100643: Integrate customCSS

Rebase of #2930 to a more recent parent so that we don't need to deal with vendor changes when switching branches.
Sadly, no, it can't handle cases when the property has a different name between browsers or between prefixed and standard.