Boundary Condition values

We ought to be able to get Dirichlet BCs working with this, and the additional values argument ought to be useful for more complicated BCs of other types