libc bindings for glob.h

only tested on linux/x86_64, but i got the values for other platforms
from their system header files.

no bindings for win32, because win32 doesn't include glob.h.

also, glob() takes a callback for error handling, but i'm just making
this a *c_void for now, since i don't know how to represent c calling
back into rust (if that's even currently possible).
add a higher level glob() function to os

this could probably use expansion - it just uses all of the default
options, which is usually what we want, but not always. maybe add a
separate function that takes more options?
Add `--linker` option to pass flags to the linker
rustc: Suppress derived pattern-match-checking errors

typeck::check::_match wasn't suppressing derived errors properly.
Fixed it.
Adds '--print-link-args' that outputs linker arguments that would be used
core: Replace uses of 'drop' in task module with 'finally'. #5379
rustc: Change At to Managed and Uniq to Owned
libcore: add N(0,1) and Exp(1) distributions to core::rand.

Sample from the normal and exponential distributions using the Ziggurat
algorithm.
test: Remove run-pass/too-much-recursion.rs

I don't understand how this is still passing on the bots. This condition
should trigger an abort now.
rustc / test: Fix error message
Change flags to -Z print-link-args and --link-args
char: fix unused import warning
iter: add a find function
deleted two tests intended to test RUST_CC_ZEAL, an apparently defunct flag for the cycle collector
remove (non-parsing) test related to impl d for d feature
this issue is a dup of another one that has a correct test case

this test case has rotted wrt modern syntax. fortunately, this issue
was a dup of another one, and that one still ICEs.
This test case is obsolete for two reasons

First, it refers to a feature (trait bounds on type parameters) that's
apparently no longer in the language. Second, if I understand the issue
correctly, it should never have been a "run-pass" test because it was
supposed to fail.
changed to impl trait for type stx
iter: add max and min functions
The null case of a nullable-poiner enum might not be nullary.

Cases like `Either<@int,()>` have a null case with at most one value but
a nonzero number of fields; if we misreport this, then bad things can
happen inside of, for example, pattern matching.

Closes #6117.