Embed improvements

- [x] Use already-known DZI info now instead of re-reading the XML at read-time. (We still read the queued DZI XML though. As an optimization, we could cache that, but it's temporary anyway.)

  In the process, this gets rid of the superfluous `ready` property on newly created DZIs.

- [x] Re-add query string support to the embed URL API, e.g. `?width=auto&height=400px`.

- [x] General improvements, e.g. robustness, to the embed JS. Modeled off the Zoom.it embed JS.

- [x] Using the embed on the view page for now, to get all of its features.

PTAL @nein09 @iangilman @gasi! Thanks. =)
The $ is something that xml2js sticks in the JSON in order to differentiate between attributes in an XML tag and tags that are nested underneath. That's why it goes Image.$.TileSize but Image.Size.$ - because TileSize is an attribute of the Image tag, but Size is its own tag.