dataflow: differentiate between entry/non-entry for initial bitsets.

The API remains backwards compatible through (overly?) clever use of
trait default methods.
rust-needsdrop: Use intersection, not union, for merge at join points.

The motivation is explained in an extensive comment in
`impl BitwiseOperator for NeedsDropDataFlowOperator`.
Add some tests for how nesting of join-points is handled.
root testsuite: Add comment since I no longer understand what I was
testing/expecting in one case.
add comments elaborating what I expect to happen.

I know in particular that an earlier bug for this case led to the
merge points not being equal, because the `self_.value = node`
assignment was being treated as establishing a drop-obligation, even
though that path has a `&mut`-reference in the middle, which means
such assignments do not yield immediate drop obligations.