Make has_errors code more readable
Make fail_on_warnings the default behavior
Match context text to what's being tested and polish some logic
Relax conditional to always test the same against puppet versions 3.7 and above (and add a note about why)