AB de Villiers played a brilliantly destructive innings, hitting 55no from 24 balls as RCB beat Mumbai Indians in an IPL thriller.