When xml provides source paths we should use them

Attempting to address: https://github.com/edx/diff-cover/issues/113

I have some concerns just merging this. Mainly in that my sample size of cobertura files is pretty small. This solves the specific case in the issue and seems to be ok with the java projects ive looked at it would be nice if we could find more to validate this with.

Also, _get_src_path_line_nodes is starting to get a bit ... wild. This may be addressed by using a specific cobertura parser like https://github.com/SMFOSS/pycobertura

Or perhaps simply some refactoring is in order
I agree that this logic is getting a little convoluted.

One possible way to make this cleaner / more flexible would be to try finding the file at each candidate path *before* retrieving the class nodes.                          
                              
1) Check if the file exists at each <source> (if any)
2) If not, check if the file exists at `src_abs_path`
3) If not, check if the file exists at `src_rel_path`
4) If one of the above paths exists, then return all <class> nodes with that filename.  It may be possible to include this in the XPath to reduce the size of the results list.

There's a risk here that we'll find the wrong file, but I think we can reduce that risk by prioritizing the checks from more specific to less specific.

The checking could be a responsibility of `GitPathTool` to make it easier to stub out in the unit tests.

Please let me know if I'm totally missing the mark here :)