Texans QB Schaub signs contract