Adding the MPI version of louvain with data strcture refactoring and improved parallism