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.
Updated documentation to refer to extra module

The documentation was still refering to getopts as though it was in the
std module - I've changed this to refer to extra instead.
Fix all issues with sample code

The getopts sample program now compiles and runs. Additionally I made
all of the indentation uniformly four spaces.
Remove all usage of the global LLVMContextRef

This allows parallel usage of the rustc library
Have JIT execution take ownership of the LLVMContextRef

Also stop leaking the ExecutionEngine created for jit code by forcibly disposing
of it after the JIT code has finished executing
Replace str::raw::buf_as_slice with c_str_to_static_slice. Close #3843.
Remove 'this could be clearer' FIXME. Looks fine. Close #2618.
Tag a bunch of destructors that need mutable self with FIXME for #4330. Close #4943.
lexer: show correct span on unrecognized token start

Fixes part of #7048.
decoder: better error message when failing to look up an id
ty: several small fixes to is_instantiable

* Don't return early, so logging is not skipped
* Remove one allocation
* Indent the match statement correctly
auto merge of #7058 : Blei/rust/fix-7048, r=bstrie
auto merge of #7047 : bblum/rust/bug_triage, r=graydon

r? anybody
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.
auto merge of #7035 : influenza/rust/getopts-doc-update, r=bstrie

The documentation was still refering to getopts as though it was in the
std module - I've changed this to refer to extra instead.
add Iterator implementations for Option
option: remove redundant old_iter impls
fix windows build
rustc: Remove task type defs from trans
Add a finally impl for `extern "Rust" fn()`