ForValue(s) doesn't clear existing values now; tests for additional coverage

This Resolves #36.

Additionally, it adds several tests to ensure that ForValue() and ForValues() replace the lists of potential values, and ForAdditionalValue() / ForAdditionalValues() do not.