added louvain community detection code from http://perso.crans.org/aynaud/communities/ as community.py