Port over branch and path finding from VLD.
Added XDEBUG_CC_BRANCH_CHECK so that we only do branch checking when requested.
Fixed a few memory leaks in branch info cleanup.
Add collected path and branch information to xdebug_get_code_coverage() output.
Fixed compiler warnings.
Refactor out the creation of the coverage file data structure.
Put line coverage under it's own header if branch/path coverage is enabled.
Rename fn to filename, it is not function name as I thought.
Organise paths/branches per function.
Use slightly better function names.
Implement branch coverage.

Next one up is path coverage!
Refactor structure so path info can be shared among branch/path analysis and path coverage.
Compiler warning fixes.
Fixed memory leak.
Refactor dumping branch and path into two functions.
Setup path discovery

Paths are discovered correctly, but not yet matches against the possible paths.
That's up next. That, and cleanups, and lots of tests.
Added support for recording which out-point each branch takes.

Sebastian thinks this, and static code analysis is enough to do path coverage
too, but I don't think it is. Leaving some other code towards that in #ifdefs.

Also made the test outputs much easier to read.
Implement path coverage.
Added support for catching exceptions and hence find entry and exit points.
Added a bunch of code-coverage test cases, and scripts for dumping the info.