Add extension traitlet to force dotted names

This addresses the problem from #7179 more generally. Tests will fail for this until that is merged.

I wasn't sure if this was really the best place for the custom trait, or if I should put it in `IPython.nbconvert.utils` or something instead.
I think you can inherit from Unicode, and simplify some of this a bit.