YAMLHelper Detecting Merge Conflicts in Podfile

In CocoaPods/Core#100, the goal was to fix the issue #69, but the fix did not address the issue. As mentioned in CocoaPods/Core#100, the current YAMLHelper parser method - #load - accepts either a file or string, but fails to provide any useful info back to the user about what went wrong, and where. I broke the intake into two methods (as previously discussed). #load_string and #load_file

The PR addresses merge conflicts in the Podfile.lock, telling the user explicitly when it has found them. If it cannot find merge conflicts, it shows the file path (if provided). If only a string is provided, it spills out the offending string to the user. 

The previous patch in CocoaPods/Core#100 wasn't doing the trick because that PR assumed only strings were being passed to #load. When it tired to scan the text for any signs of "<<<<head", it was scanning the wrong string, so you were left with the same ambiguous error. 

I ran into this because I had merge conflicts in my Podfile.lock, then found all of these past issues. New tests provided, and old ones updated. 
Either the file should be coerced to a `Pathname` or `File.read` should be used.