Boundary conditions

Making this into a pull request to allow commenting, etc. Still premature to actually pull, but I think everyone involved knows that.
I could add a syntax in which one puts the variables in:
    bounded = constant_exterior(source, 42, x, left, width,
                                                                       y, right, height);
This could even be overloaded on top of the existing syntax, though I'd have to investigate that. I expect common uses probably fit the pattern of constraining all dimensions or the first few of them, but it does seem a bit unpleasant to enshrine things like the x, y, c convention into routines like this.