extract_sources works with Windows paths

Prior to this, backtrace lines were simply split by a single colon.

Unfortunately that is also the drive letter delimiter in Windows paths which resulted in a lot of empty source fragments of "C:0". ("C" from the drive letter and 0 from `"/path/to/rails/file.rb:16".to_i`)

Now the trace line is split by the first colon followed by some digits, which works for both Windows and Unix path styles.
It is common to have custom backtraces. Take IRB's `"(irb)"` caller, for example. This won't catch it, will return `nil` and the captures call will raise a `NoMethodError`. Can we handle this case as well?