Optimisation changes in sequential_llvm.py

Optimisation now takes a string argument at runtime (--llvm-opts)
which denotes a list of LLVM optimisation passes to run
(http://llvm.org/docs/Passes.html).

Fixed a bug whereby inlining of the kernel in the wrapper would
lead to incorrect results (no longer mark PyOP2 constants as
'constant' in the LLVM IR - constant has a different meaning in
LLVM).