[web] Fix expiry of anonymous sessions (closes #4154479)
Things like:
try:
foo
except:
bar
else:
baz
doesn't work very well if you expect baz to run even in the exception
case. Plus, session.cnx.check() is a dbapi remnant, so drop it and just
look at session.mtime.
[hooks/syncschema] avoid altering a dropped table
If the constraint's rdef is being removed, CWConstraintDelOp doesn't
need to do anything. Otherwise it may try to alter a removed
table/column. Closes #4154549