clean up description of return value
Separate Vertex::Value into two variables.

Clarifies the purpose of each variable by separating the two meanings.
allow comparison function to be passed into create method
clean up tests to use new function definitions