Spectrograph Design Fundamentals