__init__ comes first, damn it
Merge pull request #390 from OP2/__init___comes_first_Florian_dammit

__init__ comes first, damn it
Ignore decompression error when reading disk cache

Pickled objects cached on disk are gzip compressed. If this archive
is corrupted (because the write was interrupted or otherwise), the
file exists, but attempting to read it fails with a zlib.error
exception. We simply ignore this failure, which is subsequently
handled as if no value had been found in the cache.
README: clarify quick start instructions
Sketch implementation of "python" par_loops

This allows (for Dats and Globals) par_loops to take a python function
as a kernel argument.  Only very lightly tested.
Copy data back out in python par_loop

When we pass a view into the kernel function, the internal indexed
assignment will create a copy which we then need to splat out to the
actual data.
Raise error for further unimplemented case
Remove overcautious exception
Add tests of python par_loop
Fix python par_loops in conjunction with device backends

We need to explicitly manage moving data from the device and updating
its state.
Merge pull request #392 from OP2/py_parloop

* py_parloop:
  Fix python par_loops in conjunction with device backends
  Add tests of python par_loop
  Remove overcautious exception
  Raise error for further unimplemented case
  Copy data back out in python par_loop
  Sketch implementation of "python" par_loops
Add support for "local" par_loops

If we pass the flag only_local=True to a par_loop it will only compute
over owned set entities (even in the case of indirect loops).  Once the
computation has finished, Dats accessed via INC perform a halo exchange
to /gather/ remote increments into their local data.

Such loops only make sense if none of the Args are Mats and if Dats are
only ever accessed as either INC or READ, errors are raised in other
cases.
Set: maintain sizes as a single tuple

Rather than having a different slot for each of core, non_core, exec and
non-exec Set sizes, just use the tuple we were passed in and index
appropriately in the public properties.
Introduce new LocalSet type

A LocalSet wraps a Set and indicates that iteration should only occur
over owned set elements.  A par_loop iterating over such a set carries
out a reverse halo exchange at the end of computation to ensure that all
INC Args are up to date.
Allow par_loops on LocalSets to have WRITE Args

The user guarantees that the write from either "side" would have been
identical anyway, so we can assume that the local write was complete and
correct, and there's no need to force a halo exchange.