Flight Simulators: Introduction, Types, Design and Testing