core: Add a crate doc block
core: Document should_not_exist's existence

Explain why it should not exist, and the plan of attack for removing it.
core: Allow using failure outside of libcore

Due to our excellent macro hygiene, this involves having a global path and a
hidden module in libcore itself.