Add test for the type of the Dat.dtype property
Build correct type for Dat.dtype if no data is supplied

We pass in a numpy type specifier for dtype which has, for example type
numpy.float64, but expect the Dat._dtype field to have type
numpy.dtype.  If no data were supplied, accessing a Dat's dtype property
would return the former, not the latter, which breaks code generation.
Fix this by converting to the correct type in the constructor.  We can
now always use the Dat._dtype field to return the dtype property.
Implement __radd__ and friends on Dats

This allows us to write x = scalar + dat, if that is more natural than
dat + scalar.
Merge pull request #259 from OP2/linalg-radd

Implement more linear algebra operators on Dats so that we can write
scalar op Dat, rather than having to write Dat op Scalar.