Spawned off of #8861, this is the last step in [RFC #769](https://github.com/rust-lang/rfcs/pull/769), Sound Generic Drop. Basically, once we are relatively confident that: - the Drop-Check rule is sound, - the `dropck` code is at least a sound approximation of that rule, and - we have audited APIs in libstd for destructor safety, then we should remove the `#[unsafe_destructor]` attribute and all the uses of it.