A Variational Inference Procedure Allowing Internal Structure for Overlapping Clusters and Deterministic Constraints