Replace recursion with iteration to avoid stack overflow

Ruby's support for Tail Call Optimization is still experimental.
Remove unnecessary conditional

backtrack_from works in both cases
Optimization: One fewer iteration over adjacent vertexes
Remove unnecessary conditional
Extract private method: matched_adjacent
Comment only
Extract private method: unlabeled_across_unmatched_edges_from
Remove unnecessary array: `marked`
Optimization: avoid one iteration over unmarked R-vertexes

Array#delete requires a full O(n) iteration
Benchmark once more after minor optimizations