Remove static from variable declarations in CUDA kernels

These are not allowed in __device__ and __global__ functions and
cause nvcc compile failures. The IR AST code generator takes care of
that, but we still need to fix it for kernels handwritten as C
strings.
Remove burgers demo

This demo is broken and not used as a regression test. Prevent
further bitrot by removing it.
Remove adv_diff_mpi demo

This demo is hard to maintain since it relies on pickled objects that
need updating whenever the relevant class changes. Prevent further
bitrot by removing it.
Refactor demos to optionally use Firedrake FFC interface

* By default, read canned kernels from disk
* If -f is given, generated kernels via Firedrake's FFC interface
* If -f -u is given, update the generated kernels
* Kernels are stored as pickled AST to be backend independent
Add a regression test for adv_diff_nonsplit demo
Remove FFC interface
Remove compatible FFC version