Simplify the stack operations using Go interfaces.
Remove the PushValue function from the public API.
Change function return types to prefer generic error interface.
Merge branch 'feature/simplify-stack' into develop