Factored the logical positioning code out of the Uize.Widget.ImagePort module and into the new Uize.Math.LogicPos module.