AC Milan have completed the permanent signing of defender Cristian Zapata from Villarreal for an undisclosed fee.