Add shape property to Dats and Globals
Use shape property rather than data.shape

This is necessary to avoid us inadvertently allocating data on the host
for temporary device Dats.
Fix norm on device backends

Previously we always computed on the device, but this is the wrong thing
to do if the data are currently on the host.
Don't call _to_device when accessing Dat.array

The device data should be allocated already, so just return the device
pointer.
Use Dat.dtype property in __str__ and __repr__
Use maybe_set_dat_dirty to set write state
Only set write state if Dat is already allocated
Refactor configuration

* no longer use a configuation module
* remove configuration loading from file
add configuration unit tests
use make_object instead of par_loop
fix invalid device state for dat copy constructor in opencl and cuda
Always run unit test both in lazy and greedy mode
Test parametrisation: make lazy part of backend fixture

Instead of explicitly parametrising lazy via passing a parametrised
fixture into the backend fixture, parametrise both backend and lazy
via pytest_generate_tests, which allows skipping lazy or greedy
evaluation by simply passing a skip_lazy or skip_greedy fixture as
an argument to a test.
More readable parameter ids for backend fixture
Only reset configuration in op2.exit if it exists
improve dump_gen_code_path configuration varibale

use tempfile module to get temporary directory

make extension backend specific
Add documentation to Configuration class

Document valid keyword arguments and point to them from op2.init.
Use builtin logger everywhere

Previously we were sometimes using warnings.warn, switch to using
logger.warning for those cases.
Wire dumping of generated code into all backends

Rather than being opencl-specific, make it so that the dump_gencode
parameter causes generated code to be output on all backends.
Additionally, switch to using the md5sum of the generated code as the
uniquifier, rather than the time the code was generated.
pyyaml is no longer a dependency