Twins sign catcher Jason Castro for 3 years, $24.5 million