Bind primitive methods to object to make all invokables behave identically

- primitives where not properly bound, while normal methods had a bound invoke() and thus were working differently at the call site, this should now be fixed by binding the primitive methods

Signed-off-by: Stefan Marr <git@stefan-marr.de>
top() does not exist, need to use get_stack_element(0)

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Fix test implementation to use getters

Signed-off-by: Stefan Marr <git@stefan-marr.de>