Auto merge of #3667 - jbendig:required_features, r=alexcrichton
Added required_features for issue #1570.
Based on PR #2056 by @tsurai and PR #2325 by @JanLikar
I tried to fix most everything that was talked about in the previous pull requests. Docs still need to be updated though.