Properly set and delete options in PETSc database

Deleting options from the database immediately after setFromOptions
causes some options not to be applied (e.g. fieldsplit options), so
only delete them when the Solver is garbage collected.
Set up fieldsplit IS when using a fieldsplit PC

Using fieldsplit preconditioners would previously fail because the
fieldsplit IS wasn't set up.
Solver: only do fieldsplit IS setup if operator changes
Merge pull request #379 from OP2/solver-fixes

PyOP2 Solver: set up fieldsplit IS, fix options

* Properly set and delete options in PETSc database
* Set up fieldsplit IS when using a fieldsplit PC
Fix host code gen for interior horizontal facet

We need to build a loop of length twice the shape of the iteration
extent, since the map doubling happens implicitly.