Britain's Dalton Smith retains the WBC light-welterweight title in an absorbing, high-class split-decision win over Alberto Puello.