Synthetic Data (Almost) from Scratch: Generalized Instruction Tuning for Language Models