Allow reposition() to take a custom geometry mask

(First step in allowing a simple set of move-to-* bindings based on the
 same presets table as the current tiling support.)