SemCoder: Training Code Language Models with Comprehensive Semantics