Check stk before dereferencing

This commit fixes #7022 - I've added an additional check to ensure that
stk is not null before dereferencing it to get it's next element,
assigning NULL if it is itself NULL.
Assert stk rather than checking null

Given that a big stack is never requested before allocating an initial
stack segment, having a non-null stk member here is an invariant.
add Iterator implementations for Option
option: remove redundant old_iter impls
fix windows build
rustc: Remove task type defs from trans
Replace tabs with spaces
Codegen: Combine two PointerCasts into one

Shaves off a percent or so from the LLVM passes for librustc.
auto merge of #7033 : influenza/rust/rust-7022, r=graydon

This commit fixes #7022 - I've added an additional check to ensure that
stk is not null before dereferencing it to get it's next element,
assigning NULL if it is itself NULL.
auto merge of #7055 : thestinger/rust/iterator, r=catamorphism

This was a lot more painful than just changing `x.each` to `x.iter().advance` . I ran into my old friend #5898 and had to add underscores to some method names as a temporary workaround.

The borrow checker also had other ideas because rvalues aren't handled very well yet so temporary variables had to be added. However, storing the temporary in a variable led to dynamic `@mut` failures, so those had to be wrapped in blocks except where the scope ends immediately.

Anyway, the ugliness will be fixed as the compiler issues are fixed and this change will amount to `for x.each |x|` becoming `for x.iter |x|` and making all the iterator adaptors available.

I dropped the run-pass tests for `old_iter` because there's not much point in fixing a module that's on the way out in the next week or so.
auto merge of #7056 : alexcrichton/rust/issue-4727, r=catamorphism

Closes #4727
auto merge of #7067 : brson/rust/notasktrans, r=graydon
auto merge of #7069 : dotdash/rust/cast_combine, r=graydon

Shaves off a percent or so from the LLVM passes for librustc.
Rename all files with the 'rc' extension
Deny common lints by default for lib{std,extra}