Encapsulate all values into a type with a specific interface.

This will allow to have simpler code, annotate values moving around more
easily. It also reduces type problems around lists.

The change is not complete - the parser.Node type still needs to be
cleaned up as most of its logic is not needed anymore. Once cleaned up,
expression should be actual []Value directly, as it should be.