Fixed bug in flycheck location extraction.

Previously we were using `location_extent.start` to determine locations
for flycheck errors and warnings. Now we use `location`. This addresses
some known defects, but perhaps I'm also missing some subtleties. Time
will tell.
Properly handling nil parse results.

These occur when the parse is successful with no errors, warnings, or
exceptions to report.