A human bomber has killed at least 18 people in a mosque packed with worshippers and wounded more than 40 during Friday prayers in the eastern Pakistani city of Sialkot.