Add copy constructor to Dats

Doesn't do the right thing on device yet.
Add Dat.vec_ro property

Additionally, mark Dats as dirty when you access their .vec property.
Merge pull request #238 from OP2/vec-updates

Vec updates

* Adds a copy constructor to Dats
* Adds a Dat.vec_ro property to return a PETSc vector without marking the
  Dat as dirty