Fatal Car Crash Involving a Self-Driving Uber Shows There are Major Flaws in the Software, Hardware, and Testing Procedures Involving Autonomous Vehicles