Relative position

So I noticed a few problems with my last commit.
1. I didn't handle monitors that requested an off screen geometry. The first commit fixes this by just centering these windows.
2. Negative edge offsets messed with the algorithm and caused some windows to be mapped entirely off screen. I fixed this by clipping windows while making the calculations and then restoring the clipped regions afterwards. However, this does mean that off screen regions on the first monitor remain off-screen on the second monitor. This could be seen as either a pro or a con but I don't think it makes much of a difference.