Call `untrailingslashit()` when adding a theme directory in `register_theme_directory()`. This prevents double-slashing in generated URLs. Don't add a directory if it is already present.

Adds unit tests.
Props obenland, wonderboymusic.
Fixes #28662.

Built from https://develop.svn.wordpress.org/trunk@29249


git-svn-id: http://core.svn.wordpress.org/trunk@29033 1a063a9b-81f0-0310-95a4-ce76da25c4cd
After [29200], switch back to using `static` vars instead of adding 2 `global`s, as per Sergey.

Fixes #28697.

Built from https://develop.svn.wordpress.org/trunk@29250


git-svn-id: http://core.svn.wordpress.org/trunk@29034 1a063a9b-81f0-0310-95a4-ce76da25c4cd