Replace the Value namedtuple with a class with __slots__

This results in more idiomatic code and allows for better docs and
addition of methods later on.