Value Partition rewritten.

The value partition functionality has been totally rewritten, resulting
in a breaking change. A new function version has been introduced, as
well as a macro version. Several utility functions (e and p) which
enable having these two versions have been added.