flap: Properly calculate minimum and natural sizes

Currently, we always calculate minimum and natural size the same way. This
technically works, but is incorrect semantically. For example, it means
that flap's natural size changes depending on whether it's currently
folded, while folding state may change depending on the allocated size.

Instead, calculate natural size as follows:

* When the flap is always folded, do the same thing as berore
* When it's never folded, assume natural to be what the flap will be like
  when fully revealed
* For the automatic policy, an important distinction is whether the flap is
  locked or not. If it's not locked, we can safely assume the size when
  unfolded and fully revealed as well, but if it is locked and the flap is
  not revealed, we assume that to be the natural size, because the flap
  will never be auto-revealed on resizeing, and unlike the never folded
  state, revealing the flap will not cause a widget resize either.

Additionally, never account for the separator size for the flap's
orientation. When folded, the separator will end up completely offscreen,
and it's expected and supported situation.
11 jobs for flap-nat in 14 minutes and 37 seconds (queued for 1 second)
Status Name Job ID Coverage
  Build
passed api-visibility #1072549

00:00:18

passed build-debian-clang #1072551

00:03:30

passed build-debian-gcc #1072550

00:02:31

passed build-fedora-gcc #1072552

00:05:17

passed build-flatpak #1072553
flatpak

00:02:17

passed build-flatpak-glade #1072554
flatpak

00:04:02

 
  Test+Docs
passed build-gtkdoc #1072555

00:02:28

passed unit-test #1072556

00:02:30

46.3%
 
  Package
passed package-debian-buster #1072557

00:04:02

 
  Test Package
passed autopkgtest-debian-buster-package #1072558

00:02:44

passed lintian-debian-buster-package #1072559

00:00:49