Establish subsets for the boundary marks.
Cause external facet integrals to occur only over relevant subset
Minor bugfix to cause the correct subset index to be found. Introduce test of facet integrals.
Initial definition of the DirichletBC class.
Wire in modified maps for external boundary conditions

Probably doesn't work yet but at least it doesn't cause any
regressions.
Extend boundary condition support to interior facet and cell maps
Put all the brackets into the tests now that cell_node_map is a method rather than a property.
Tweaks to cause dirichlet conditions to actually be applied

Although the dientification of boundary nodes is currently fubar.
Correctly calculate nodes involved in a DirichletBC

And cause those BCs to be correctly applied to matrices.
Register parent maps of boundary condition maps

This is in order to make error checking on sparsities work.
Add ability to insert boundary condition values into residual vector

This is achieved by adding the ability to evaluate a pointwise
expression only on a subset.
Ensure boundary conditions actually show up in nonlinear solve
Fix a couple more typos, and use union1d instead of unique.

After this change, nonlinear solves with strong boundary conditions
appear to work.
Apparently working strong boundary conditions test

To get this working it was necessary to impose the boundary
conditions on the initial guess passed to the nonlinear solver.
Replace linear equation objects / solvers with subclasses of nonlinear cases

This reduces total code paths and also enables strong boundary
conditions to work in the linear case.
Also test strong BCs via the "linear" solver route.
Tighten the default relative tolerance on linear solves