Indian Prime Minister Narendra Modi has opened a controversial Hindu temple built on the ruins of a historical mosque in the northern city of Ayodhya, delivering on a crucial Hindu nationalist pledge his ruling party hopes will catapult him to a record third successive term in upcoming elections.