Refactored int/uint range code in preparation for change to range_rev semantics.

Also added unit tests of range code to test refactoring.  The
num-range-rev.rs test will need to be updated when the range_rev
semantics change.
Switch over to new range_rev semantics; fix #5270.
Fix #5270: another test I did not update properly.
ringbuf: Implement .size_hint() for iterators
dlist: Simplify by using Option::{map, map_mut}

These methods were fixed or just added so they can now be used.
dlist: Use inline on very small functions and iterator functions
auto merge of #7790 : blake2-ppc/rust/dlist-ringbuf-small-changes, r=thestinger

Implement size_hint for the ringbuf iterators.

Do small cleanups in dlist, use Option's .map and .map_mut properly, and put inline on all the small methods.
Give term.fg() and term.bg() a bool return value
term: Add new function .attr() to toggle terminal attributes

Also add .supports_attr() to test for attribute support without writing
anything to output.

Update .reset() to use sgr0 instead of op.
Highlight rustc's warnings/errors in bold instead of bright white

Clang actually highlights using bold, not using bright white. Match
clang on this so our diagnostics are still readable on terminals with a
white background.
Don't re-parse terminfo (twice!) on every compiler diagnostic

Stuff the term::Terminal into TLS to avoid re-parsing for every single
message we want to color.

Fixes #6827.
auto merge of #7716 : kballard/rust/term-attr, r=cmr

Teach `extra::term` to support more terminal attributes than just color.

Fix the compiler diagnostic messages to print in bold instead of bright white. This matches Clang's output.

Cache the term::Terminal instead of re-parsing for every diagnostic (fixes #6827).
Noting that json.rs provides parsing as well
auto merge of #7792 : ozten/rust/master, r=huonw

Minor tweak, but I was confused when first digging into json.rs docs.

I think it's clearer to say the module provides parsing and serialization.
add regions, unicode idents, attributes to GtkSourceView language-spec
Install librustllvm.so to target lib directory
auto merge of #7795 : sp3d/rust/master, r=z0w0

This should be pretty self-explanatory. The most important component is region/lifetime annotation highlighting, as previously they were interpreted as character literals and would ruin the rest of the line. The attribute regex is fairly crude, but it gets the job done and there's not much within attributes that would benefit from individual highlighting, so fancier handling didn't seem worth the trouble.

The ident regex was copied from the vim highlighter.
auto merge of #7796 : thomaslee/rust/issue-6247, r=z0w0

This closes #6247 by simply ensuring librustllvm.so gets installed to the target lib directory in addition to the host lib directory.
cmp: Use default methods in trait Eq, require only Eq::eq
auto merge of #7799 : blake2-ppc/rust/eq-default, r=sanxiyn

Let Eq::ne be implemented to the inverse of eq by default.