Type Prediction With Program Decomposition and Fill-in-the-Type Training