Calabi-Yau Threefolds And Heterotic String Compactification