This DTRT for device backends, I believe, since src._data and self._data may be out of date.  I think instead this should use the Dat.copy method:
````
src.copy(self)
````

That uses a par_loop to write the data in src into self.  I think that's right.