Add configuration of COFFEE AST optimisations

Configurable via parameters['coffee']:
* parameters['coffee']['licm']
* parameters['coffee']['slice']
* parameters['coffee']['vect']
* parameters['coffee']['ap']
* parameters['coffee']['split']

These parameters are part of the FFCKernel cache key. Note that this causes
unnecessary repeated calls to FFC when actually only the kernel code needs to
be regenerated and recompiled. Previously however it would simply return the
kernel with whatever optimisations where applied when it was first cached.