Molecular Exchange Monte Carlo. A Generalized Method For Identity Exchanges In Grand Canonical Monte Carlo Simulations