Allow joining of areas that are below our minimum sizes.
This isn't related to D16519: Fix T100772: Joins with Interfering Tiny Areas , which is concerned with ensuring that narrow areas (smaller than our minimum sizes) do not interfere with the joining of neighboring areas. This is about our current inability to perform some complex joins on these types of areas themselves.
This patch corrects an (own) error in our current area_getorientation. That function returns the directional relationship between two areas. It is used to determine whether two areas can be joined.
Part of this code ensures that the two areas share a common edge by at least the minimum sizes for areas. Unfortunately if either of the areas is already less than minimum size then this cannot ever be the case. Instead the minimum for this should be the MIN of those minimums and the widths of the source areas.
We try to avoid sub-minimum areas, but they cannot be always avoided. If you end up saddled with one, we should make sure you have all the tools available to get rid of it. Following show joining a skinny area, not possible now:
While in that function I made it MUCH easier to follow. Should be much more obvious and simple now.
