read search-index.js as UTF-8
update indexing for the new search-index.js format

* replace regex-guided coercion of JS into JSON with direct execution +
  extraction of variables using execjs. execjs should not require any
  additional dependencies assuming the docset is generated on a Mac.

* update for rustdoc search-index.js changes:
    https://github.com/mozilla/rust/commit/f6854ab46c1303cfee508a4537e235166cd6cc3e
    https://github.com/mozilla/rust/commit/8f5d71cf71849bea25f87836cec1b06b476baf37
update mapping of rustdoc types to Dash item types

the undocumented type `_Struct` is used in the official Rust docset; it
has a different color and order in the sidebar's tree view than the
`Struct` type.
improve warning message when indexing a nil type
use fully qualified names

the dashtoc2 DashDocSetFamily is needed to get nicer search results,
grouped by the final identifer in the FQN
differentiate from official docset in Info.plist
apply some style overrides

still TODO is replacing the references to certain assets (fonts, logos)
on HTTP sites with local copies.
fetch and replace references to remote assets
only index links to local docs as Guides
Merge pull request #2 from tomjakubowski/fix-for-nightlies

Fixes for latest nightly docs