added different, more intuitive resizing

This patch will add a more intuitive way to resize windows. 
Basically, when you press up, some split will ALWAYS move up, regardless of where the window is.
It prefers to move the south/east border first, then goes to the north/west one if that split would have no effect. 

There are two weird things in the code: 
Line 232 -- I feel like this could be done better, or at least without an if. 
Line 240-252. These two functions are very similar. findClosest will find the closest split in a given direction. This can work, but may have some weird effects with some layouts. findSplit basically looks up in the tree for the closest split in a given direction coming from the left (I think, may be the right). Basically this will find the east-most edge that is not directly against the edge of the workspace. If thats not found, getSplit will go back to finding just the closest edge. 

If any of this was unclear, then please tell me. I am very open to suggestion.