iterate_file_lines() 

Add iterate_file_lines() to Genome::Sys.  This method is an abstraction to work through a file one line at a time.

Convert Genome::Model::Build::Command::DetermineError to use it.

There are probably other places it could be used.
Ah, sorry, I missed the fact that there was a test.  Github's diff elides its presence to `889 additions, 0 deletions not shown`.

`find_die_or_warn_in_log` is looking for lines that look like calls to `die()` (but it will also match `warn()` since they look the same). They will not start with `ERROR`, because the previous forward search through the file would have found those.

I would expect `find_die_or_warn_in_log()` to match line 780 in the workflow log of the test.