SG-Bench: Evaluating LLM Safety Generalization Across Diverse Tasks and Prompt Types