AdjointRefinement fixes

In the general case, we only need to compute requested adjoints, not
every adjoint.

In the heterogeneous BCs case, we may need to subtract off the coarse
grid lift function rather than the fine grid lift.

Vikram's tested this and saw good results, so I'll commit in a day or so unless someone speaks up.