Add interface to likwid marker functionality

Allows us to initialise and finalise marker recording from
python (necessary to avoid overhead in kernels).
Add likwid configuration variable

If init is called with likwid=True, the marker initialisation code will
be called (also if PYOP2_LIKWID_PROFILING is set).
Add PETSc library directory to rpath
Include likwid.h and link against liblikwid

Markers are only enabled if likwid profiling is switched on in the pyop2
configuration.
Add profiling context manager

Use: with profiling(basename, name)
Add ability to add data volume to profiling information
Compute par_loop data volume
Wrap profiling calls around par_loop and solve
Add likwid marker start/stop in sequential par_loop call
Change the timing function.
Update timer.
Add C timer to profiling stats.
Add VBW computation based on C timings.
Fix lint errors.
Add c time return for openmp backend.
Add _md5 property to kernel.
Switch to offset values.