Update hacker guide: add more info, fix broken links.

This pretty much ports things from https://github.com/scala/scala/pull/3830 to relevant sections of the hacker guide. It also fixes some broken links.

/cc @xeno-by @heathermiller @retronym @adriaanm @som-snytt @paulp
Maybe we should be careful with what we say here? This might not be the best way to present binary/source compatibility-breaking changes. It's a delicate issue. @retronym or @adriaanm maybe you have wording suggestions?