Fixes graph linker (related to ABAB problem)

Previous implementation incorrectly processed
block chains with non-empty stacks.

Consider the following situation:
	A(-2) <- B(1) <- C(1)

Block A is the value consumer which requests two values
from the refering blocks. Each of blocks B and C provide
a single value on their local stack.

First request with index 0 will be satisfied by block B
because it has 1 value on the local stack.

Request with index 1 is more complex. First, block A looks
into block B because it is the only referer. But block B
have only 1 value on the stack and therefore could not
provide a value with index 1. Hence, block C is queried
recursively.

The problem is that block C also have only 1 value and
could not satisfy request with index 1.

Problem is solved by substracting the size of local stack
from the requested index on each recursion entry.

Finally, second value will be requested from block C
with effective index 1 - 1 = 0.

Issue: #32
Issue: #2
Adds test for stack semantics

Issue: #32