Plan: allocate correct amount of space for temp arrays

Entries in the exec halo of Maps may point to non-exec halo set entries,
we therefore need to allocate total_size rather than exec_size space.
We didn't notice this previously in Firedrake because we only ever had
exec_size being equivalent to total_size.
Merge pull request #384 from OP2/plan-fix

* plan-fix:
  Plan: allocate correct amount of space for temp arrays
Added a load method to the Dat class.
Ensure that 'filename' has a .npy extension.
Handle the Dat and MixedDat cases separately.
Add a test for the 'load' and 'save' Dat methods.
Put the output file in a temporary directory.

Applies Lawrence's diff in pull request #385.
Merge pull request #385 from ctjacobs/dat-load-from-file

* dat-load-from-file:
  Put the output file in a temporary directory.
  Add a test for the 'load' and 'save' Dat methods.
  Handle the Dat and MixedDat cases separately.
  Ensure that 'filename' has a .npy extension.
  Added a load method to the Dat class.
Ignore non-existent cache directory when clearing cache
Always yield self when extracting CUDA Mat block
Time par_loop kernel execution for all backends

This is the time actually spent in generated code.
Time plan construction
Profiling: timing returns total time by default
Profiling: print summary sorted by name
Implement an autotuner in COFFEE

The autotuner evaluates the licm, ap, vect, split, and blas
optimizations by running them on a fake mesh (i.e. kernels are invoked a
number of times, but the actual fields are not read from a real mesh).
When licm and split are evaluated, assembly and integration loops are
also unrolled in several ways (this is driven by some heuristics).
Finally, the fastest optimization is picked and proper code is
generated.
Split now properly update expressions dictionary
Change the way applied optimizations are tracked
Bug fix: buffer properly passed to addto_scalar
Autotuner requires explicit setting of unroll optimization
Implement loop permutation and transposition of storage layout