Garbage collection

Better support to profile affects of garbage collection on performance.

Only tested with PHP 5.6 and hierachical profiling so far.

Todos:
- [x] Test with all PHP versions
- [x] Add support for all profiling modes
- [x] Investigate if timing is possible somehow.

The function to hook into for timing is `gc_collect_cycles` or its parent `gc_zval_possible_root`, but they are not pointers and cannot be exchanged.