Fix one of the bugs from issue 144: confusion with folders

The heuristic used to find the associated header of the main file
involved checking the name of the first file included.
When --pch_in_code is provided, the first file included is _always_
the precompiled header and can't be the associated header.
Have the heuristic check the second header with --pch_in_code.

Based on patch by David Punset, thanks!

git-svn-id: http://include-what-you-use.googlecode.com/svn/trunk@564 812d1f90-f944-d88a-411a-122bdc93e1ea
Update to reflect changes in LLVM.
yaml::Stream constructor was changed to take a std::unique_ptr<MemoryBuffer> in r215855.
The std::move looks funny, but ErrorOr.get() returns an lvalue reference that needs
to be converted to an rvalue reference.

git-svn-id: http://include-what-you-use.googlecode.com/svn/trunk@565 812d1f90-f944-d88a-411a-122bdc93e1ea