Change DDoc examples in std.algorithm to documented unittests

And fix all the tests that proved broken, which turned out to be quite a few. Some of them contained rather nonsensical code, presumably relics of copy-paste (e.g. see the `intersection3` example). I think the amount of broken examples discovered by this really proves the usefulness of this new feature.

Examples that reside in between general explanations were left untouched for now.