When setting a tensor field from python, check that the dimensions of the array returned by the user match up with the allocated dimensions of the tensor_field.
When setting a tensor field from python, check that the dimensions of the array returned
by the user match up with the allocated dimensions of the tensor_field.

This adds a new runtime check that at least some tests will fail (in particular, some of
the shallow water ones). If this commit causes test failures, it is highly likely that
the problem is not this commit, but rather the test itself.

* Test owners should keep an eye on their tests on buildbot when this commit is run and fix
  any bugs it finds *

jjo31/ATHAM-Fluidity,iakovos-panourgias/fluidity,jrper/fluidity,jjo31/ATHAM-Fluidity,jrper/fluidity,iakovos-panourgias/fluidity,jjo31/ATHAM-Fluidity,rjferrier/fluidity,rjferrier/fluidity,rjferrier/fluidity,iakovos-panourgias/fluidity,iakovos-panourgias/fluidity,rjferrier/fluidity,jrper/fluidity,rjferrier/fluidity,iakovos-panourgias/fluidity,jjo31/ATHAM-Fluidity,jrper/fluidity,jjo31/ATHAM-Fluidity,jrper/fluidity