fix SIGSEGV when reading from a non-existant file (#4453)
fix SIGSEGV when reading from a non-existant file (#4453)

When a tool (tested with spirv-dis and spirv-as) runs on a file that
does not exist, it notifies the user and tries to close the stream that
was never successfully opened.
dneto0/SPIRV-Tools,dneto0/SPIRV-Tools,pierremoreau/SPIRV-Tools,KhronosGroup/SPIRV-Tools,dneto0/SPIRV-Tools,KhronosGroup/SPIRV-Tools,KhronosGroup/SPIRV-Tools,pierremoreau/SPIRV-Tools,KhronosGroup/SPIRV-Tools,KhronosGroup/SPIRV-Tools,dneto0/SPIRV-Tools,pierremoreau/SPIRV-Tools,pierremoreau/SPIRV-Tools,dneto0/SPIRV-Tools,KhronosGroup/SPIRV-Tools,pierremoreau/SPIRV-Tools,KhronosGroup/SPIRV-Tools,dneto0/SPIRV-Tools,dneto0/SPIRV-Tools,pierremoreau/SPIRV-Tools,pierremoreau/SPIRV-Tools,pierremoreau/SPIRV-Tools,KhronosGroup/SPIRV-Tools,dneto0/SPIRV-Tools