Update to last Rust

This PR is an attempt to fix errors and warnings introduced by last Rust changes.

It only covers `#[cfg(target_os = "linux")]` (because I don't have any other platform to test on).

There are two main changes:
- fixing errors about `improper_ctypes` in ffi (first commit)
- `Copy` is now opt-in (second commit)

About Copy, I simply marked as `#[deriving(Copy)]` all types the compiler suggested could be. But probably some of them can be not copyable (with `#[allow(missing_copy_implementations)]`), but I don't think I'm able to choose which should and which should not.