Fix handling of must analyses.

1) meet operation only necessary when merging multiple incoming values, otherwise we perform the union of incoming state with already existing state. Previously, we were performing the meet even when there was a single flow between two values. This can lead to lost dataflow information when the meet operator is conjunction.

2) When propagating a return value in a must analysis, we must re-calculate the meet of all incoming return values for all affected call instructions (affected here means those call instructions to which the return value could propagate back to).

3) Add preliminary support for annotating struct field members with file descriptor rights (__soaap_fd_permit)