Support Constant in firedrake par_loop

Allow passing a Constant in to a par_loop (always accessed with single
indirection).  For example, to assign a function to the minimum of
itself and some specified constant:

   c = Constant(100)
   f = Function(V)

   par_loop('for(int i = 0; i < f.ndof; i++) { f[i][0] = fmin(f[i][0], c[0]); }',
            dx, {'f': (f, RW), 'c': (c, READ)})
Update par_loop documentation for new Constant type
Only allow READ access to Constant coefficients in par_loop

Although in the underlying data model Constants are actually not, raise
an error if trying to write to one in a par_loop, since that's probably
not what was intended.
Fix assignment in direct parloop test

Should be = not +=.
Add some tests of par_loops accessing Constant coefficients
Merge pull request #351 from firedrakeproject/constant-par_loop

Constant par loop