add default Clone impl for all copyable types

This provides a default implementation of `Clone` for all copyable types, which allows generic code to start using `Clone` instead of `Copy`.

I don't think there will be a need to expose `Copy` outside of this module once stuff is migrated.