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.
Built from https://develop.svn.wordpress.org/trunk@27268


git-svn-id: http://core.svn.wordpress.org/trunk@27124 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Make sure `data.meta` always exists when rendering tracklists. Use `$theme_width` when rendering media tag in playlist template instead of recalculating.

Props helen.


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


git-svn-id: http://core.svn.wordpress.org/trunk@27125 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Set wpActiveEditor to the id of the first instance on init, props kovshenin, fixes #27210.
Built from https://develop.svn.wordpress.org/trunk@27270


git-svn-id: http://core.svn.wordpress.org/trunk@27126 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Update the Masonry JavaScript library to version 3.

The new script handle is 'masonry'. The old 'jquery-masonry' handle is the official shiv that sits on top of the v3 library. While v3 no longer depends on jQuery, a theme or plugin may have bee
n implicitly loading jQuery though Masonry, rather than additionally declaring it as a dependency for themselves. Thus, the shiv is separate.

Themes should switch to 'masonry' and declare jQuery as a dependency on their own if they need it. Upgrade guide: http://masonry.desandro.com/appendix.html#upgrading-from-v2. imagesLoaded remai
ns included with Masonry here.

props shelob9.
fixes #25351.

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


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