Implement Vector._scale
Use PyOP2 rather than PETSc for Vector manipulations

So we don't necessitate needless host-device copies, use PyOP2's support
for linear algebra operations to implement axpy and friends.
Additionally, simplify access to the vector array now that data
accessors don't return halo points.
Add more tests of Vector functionality