A Practical and Optimal Approach to CNC Programming for Five-Axis Grinding of the End-Mill Flutes