Rename ir into coffee
Make ast node objects printable
Rename classes and variables in COFFEE
Change optimization name
Move COFFEE initializer to ast_planner
Apply padding and alignment separately
Fix buffer init in host code generation
Add compilation with Intel compiler
Raise exception if generated code differs across ranks
Note requirement for uniform generated code across ranks
Add test that Dat copy increases version of copied-into Dat
Add modifies_argn decorator

Use this to indicate that a method modifies its nth argument.
Add modifies_argn decorators to Dat.copy and Solver.solve
Fix semantics of multiple par_loops INCing into a Global

Consider the following:

  par_loop(count, set, glob(INC))

  par_loop(count, set2, glob(INC))

Where count is a kernel that increments its argument by one.  After
execution of these par_loops, we expect to see a value of set.size +
set2.size in glob.  However, in parallel we see something larger than
this.  This is because the first loop performs a parallel reduction such
that glob takes the global value of the set size.  This is used to
initialise the reduction for the second loop which is wrong.  Instead,
create a temporary Global with value zero (the identity for summation)
and sum this reduced value into the output Global when done.
Use NumPy sum when computing Subset section sizes
Work around gcc 4.8.2 bug

Some of our interior facet integrals are compiled badly by gcc 4.8.2
with -O3 optimisation levels, turn off the relevant flag that does
this.  (GCC bug gcc.gnu.org/bugzilla/show_bug.cgi?id=61068).
We currently require petsc4py next
Travis: system site packages no longer supported for 2.6
Attempt to fix versioning issue
Optimize sparsity builder code for extruded case

* Type all variables used in loops
* Instruct the Cython compiler to not do safety checks for division