Implement bitwise operations on BigUint
add `noalias` attribute to ~ return values
auto merge of #9071 : thestinger/rust/noalias, r=alexcrichton

This also removes a FIXME I added referring to a now closed issue.
auto merge of #9083 : dcrewi/rust/biguint-bit-ops, r=brson
Delay assignment of node ids until after expansion. Ensures that each AST node
has a unique id. Fixes numerous bugs in macro expansion and deriving. Add two
representative tests.

Fixes #7971
Fixes #6304
Fixes #8367
Fixes #8754
Fixes #8852
Fixes #2543
Fixes #7654