Use `Copy` where moves are illegal

Using `rustc 0.13.0-dev (d2e2bd1b4 2014-12-12 09:12:08 +0000)` I get many compile errors because types that previously were copied implicitly are moved now that `Copy` is opt-in .

The first commit fixes those compile time errors; the second commit fixes all the `#[warn(missing_copy_implementations)]` warnings emitted.

Both commits pass all tests that run on my machine:
`test result: ok. 77 passed; 0 failed; 49 ignored; 0 measured`