Add structs for ranges to core::ops.
Add lang items for ranges.
Add syntax for ranges
Type checking and trans for ranges
Tests
Review changes
auto merge of #19858 : nick29581/rust/ranges, r=aturon

Closes #19794

r? @aturon for the first patch
r? @nikomatsakis for the rest
Merge remote-tracking branch 'upstream/master'