Detect unlikely situation of an area (that is smaller than our allowed
minimums) sharing an edge that will be moved during a join.
Complex area joining makes some assumptions in order to work as it does. It assumes that if the misalignment of the areas is GREATER than our minimum area sizes then they can be split and the results will be areas of valid size. Further, if the misalignment is LESS than our minimum sizes then the two can be aligned by having their screen edges moved.
However, there is a scenario that can cause invalid regions in the latter case. There could be a separate area, that is SMALLER than our minimums, that shares an edge that will be moved. Having areas that are smaller than our minimums is unlikely, but not impossible. One way to create them has been fixed in {d26a0be968e0}, but it is not possible to entirely eliminate the possibility. Simply enlarge a window over multiple monitors, resize one area to minimum, then scale the window back down and that area will now be too small.
In the following example, you can see a tiny area between 3DView and Properties. This would interfere with (only) a join between 3DView and the Timeline below it, because of how their right-side edges would be moved. There would not a problem is that area were minimum width.
This patch adds screen_areas_can_align that tests for the conditions that would make an alignment or workspace fail, and includes tests for this (odd) case.
