Cool, thanks for the contribution. Just a couple notes:
You should be able to just use a single _ for both of the "forget" values.
Do be aware that some of the boolToValueId logic assumes that True has id 1 and False has id 2. This should work fine with that assumption, unless you're doing weird things in Postgres, but it is something to be aware of. Making that more robust is on my list of things to do when I circle back around to working on non-boolean valued properties.
This looks entirely functional though, so I'm going to go ahead and merge, but feel free to make tweaks and open another if you're so inclined.
In boolean handler: adding boolean ValueSet and TValues True and False if nonexistent.
Fixes #40