(maint) Fix 500 when changing variable from false.

Because the check to see if the variable existed before was just
a truthiness check on the value, if the value was false the classifier
would attempt to re-insert the variable, resulting in a database
constraint violation. Fix this by giving a not-found argument to the
get-in call used to find the old value, and only insert a new variable
if the get-in returns the not-found value.

Acceptance and database tests have been updated to test this situation.