Josh Taylor somehow held on to all his light-welterweight belts after clinching a controversial split decision victory over Jack Catterall.