Celtic have won the Scottish League Cup, beating city rivals Rangers in a penalty shootout on a day when violent pre-match clashes took place in Glasgow.