document the semantics of the clone method

@pcwalton: r?

Rust already has the concept of a shallow copy as part of the language (normal by-value assignment, parameters and return values), which is treated as a move of ownership for linear types. I don't think it would make sense to implement `Clone` as a shallow copy for some types but not others except where it's semantically equivalent. This just documents what `Clone` is supposed to represent so it gets used correctly.