Pull requests usually come in pairs, right?

A few house keeping things; I added methods for the `grow_up`, `shrink_width` and so on that were in `apply`, for consistency.

I'd like to deprecate the optional `dist` argument in `up,down,left,right`.  The default value of `0` is silly (`frame = other_frame.left => frame == other_frame ?`).  Other than that, added some exceptions if required arguments are missing.