Allow mutable slices in statics.

Fixes #11411
rustc: Move mut slice check to `check_static`

This is a follow-up patch that moves the mut slice check to the recently
added `check_static`

Closes #11411
doc: remove node.js dependency

`prep.js` outputs its own HTML directives, which `pandoc` cannot
recognize when converting the document into LaTeX (this is why the
PDF docs have never been highlighted as of now).

Note that if we were to add the `.rust` class to snippets, we could
probably use pandoc's native highlighting capatibilities i.e. Kate.
doc: have a real switch b/w LaTeX compilers
doc: CSS fixes

- fixup and refactor highlighting code
- have a proper print stylesheet
Bugfixes and cleanup to configure script
mk: Put man pages in correct directory
mk: Optionally clean the destination when preparing install image
mk: dist-installer builds a binary installer
configure: Create the dist directory
Add /dist/ to .gitignore
mk: Use the correct permissions for man pages
mk: Tweak the status messages for prepare.mk to say 'prepare', not 'install'
mk: forcibly delete dest dir when PREPARE_CLEAN
mk: Put all distribution artifacts in dist/

Also, add license docs to installers
install.sh: Improve error handling
install.sh: untabify
libstd: Change `slice_shift_char`, `shift_char`, `pop_char`, `shift_byte` and `pop_byte` to return an Option instead of failing
libstd: Add unit tests for `slice_shift_char`
libstd: Update docs for `slice_shift_char` and {shift,pop}_{char,byte}