Community Detection in the Stochastic Block Model: fundamental limits