add populated search box to docs 404 page

reference https://github.com/rust-lang/rust/issues/18498
Merge remote-tracking branch 'upstream/master' into doc-18498
cleaned up ids, added direct rust doc search

Search functionality uses both duckduckgo for site wide doc search
and the rust specific documentation search @

http://doc.rust-lang.org/core/?search=unwrap_or_else
Guide: explains the enum/match relationship

Closes #18169
auto merge of #18497 : gamazeps/rust/enumsmatch, r=steveklabnik

Closes #18169
Guide: minor clarifications for the Pointers part
Guide: drop line-number cruft from elided error examples
auto merge of #18528 : seanjensengrey/rust/doc-18498, r=brson

This addresses https://github.com/rust-lang/rust/issues/18498 by adding a prepopulated search box to do site search on `doc.rust-lang.org` using duckduckgo AND generating a search url against the rust documentation using the internal search facilities.

* https://duckduckgo.com/?q=type+Option+unwrap_or_else+site%3Adoc.rust-lang.org
* http://doc.rust-lang.org/core/?search=unwrap_or_else
auto merge of #18338 : chastell/rust/guide_pointer_fixes, r=alexcrichton

This removes some leftover line-numbering cruft from elided error examples and brings some minor clarifications.

I’m not super happy about the ‘we cannot have two mutable pointers that point to the same memory’ wording (to the best of my understanding we can’t even have one mutable and one immutable), but other attempts to word this were derailing the flow a bit too much.