Two men have been killed and nearly 50 people injured, among them Britain's ambassador to Bangladesh, in a powerful bomb explosion at a shrine to a Muslim saint in the town of Sylhet.