Improve pushState, replaceState and routing for Themes page

* Uses `pushState()` generally
* Uses `replaceState()` when updating a search query (so no history cruft from typing)

fixes #27198. props gcorne, adamsilverstein.

git-svn-id: https://develop.svn.wordpress.org/trunk@27268 602fd350-edb4-49c9-b593-d223f7449a82
Make sure `data.meta` always exists when rendering tracklists. Use `$theme_width` when rendering media tag in playlist template instead of recalculating.

Props helen.



git-svn-id: https://develop.svn.wordpress.org/trunk@27269 602fd350-edb4-49c9-b593-d223f7449a82