Horizontal transfer of code fragments between protocells can explain the origins of the genetic code without vertical descent