libsyntax: extend generic deriving code to handle almost all possible traits.

This adds support for static methods, and arguments of most types, traits with
type parameters, methods with type parameters (and lifetimes for both), as well
as making the code more robust to support deriving on types with lifetimes (i.e.
'self).
libsyntax: convert #[deriving(IterBytes)] to generic deriving
libsyntax: add #[deriving(Rand, ToStr)].

The former fills each field of a struct or enum variant with a random
value (and picks a random enum variant). The latter makes the .to_str
method have the same output as fmt!("%?", ..).
testsuite: tests for deriving changes and additions
Make lint_table static
Lift restriction on calling extern C functions, and propagate
the ABI as part of the type of an extern fn. cc #3678
Add test for #4666, which didn't *quite* seem to be covered by
existing tests. The bug itself was fixed as part of recent borrowck
reform.

Fixes #4666.
rc: remove the managed pointer workaround
arc: mark RWARC as non-Const
io: handle fread() errors

When, occasionally, trying to read directory instead of file, `fread()`
returns `EISDIR` error. And, considering, absence of error handling,
`read_whole_stream()` just loops indefinitely.
extranous thing is removed
auto merge of #6303 : nikomatsakis/rust/issue-4666-test, r=nikomatsakis

existing tests. The bug itself was fixed as part of recent borrowck
reform.

Fixes #4666.
testsuite: update a test for #4350
auto merge of #6297 : sammykim/rust/static-lint-table, r=luqmana
auto merge of #6305 : thestinger/rust/rc, r=nikomatsakis
auto merge of #6307 : brson/rust/rng2, r=brson

Closes #6280
auto merge of #6309 : nikomatsakis/rust/issue-3678-type-of-extern-fns, r=nikomatsakis

Lift restriction on calling extern C functions, and propagate the ABI as part of the type of an extern fn. cc #3678
auto merge of #6311 : indutny/rust/fix/handle-io-fread-errors, r=z0w0

When, occasionally, trying to read directory instead of file, `fread()`
returns `EISDIR` error. And, considering, absence of error handling,
`read_whole_stream()` just loops indefinitely.
auto merge of #6317 : brson/rust/durable, r=z0w0

#6312
auto merge of #6321 : ILyoan/rust/test4350, r=z0w0