Moved SITL setup/teardown into generic GenericTest module that test modules can extend to avoid copied code.

Also moved failsafe overrides into seperate classes so they can run in independent SITL instances.