Peru cancels massive dam project after years of protests