Sri Lankan prime minister resigns after weeks of protests