When updating the signature for CopyFrom we accidentally broke a
workflow where receive messages in a `canrunner.Node` and then copy
the data from them using `CopyFrom`. This commit restores CopyFrom to
accept a "message reader" type, but extends that type to also require
that values implement `Frame() can.Frame`.
All messages generated by cantool already implements `Frame()
can.Frame` so only mocks should be affected.
BREAKING CHANGE: This restores old signature of CopyFrom to accept a
message reader instead of a message instance to copy from.