Joe Hart was Celtic’s penalty hero as they beat Aberdeen in a frantic game at Hampden Park to reach the Scottish Cup final.