Sri Lanka beat Afghanistan to reach Asia Cup final