Birmingham City have completed the permanent signing of defender Paul Caddis from Swindon Town for an undisclosed fee.