Add FileReader flag to decide if errors in opening file fatal/non-fatal

Flag default is fatal and will crash if errors in opening. If non-fatal,
log error instead of crashing. Added tests for the same.

Change-Id: I788416b86628055f137d0fc4a18fb62c0ca9177a
Signed-off-by: James Kuszmaul <james.kuszmaul@bluerivertech.com>
diff --git a/aos/util/file.cc b/aos/util/file.cc
index b2528a9..f1afa0f 100644
--- a/aos/util/file.cc
+++ b/aos/util/file.cc
@@ -202,9 +202,14 @@
   return span;
 }
 
-FileReader::FileReader(std::string_view filename)
+FileReader::FileReader(std::string_view filename,
+                       FileReaderErrorType error_type)
     : file_(open(::std::string(filename).c_str(), O_RDONLY)) {
-  PCHECK(file_.get() != -1) << ": opening " << filename;
+  if (!is_open()) {
+    PLOG_IF(FATAL, error_type == FileReaderErrorType::kFatal)
+        << ": opening " << filename;
+    PLOG(ERROR) << "opening " << filename;
+  }
 }
 
 std::optional<absl::Span<char>> FileReader::ReadContents(