Extra-time goals from Callum McGregor and teenager Callum Osmand got Celtic past 10-man Rangers and into the Scottish League Cup final.