Add "ON UPDATE *" knob, and two important postgresql options

ON UPDATE works when the remote id is changed, which can happens, you never know.

The postgresql options, that is, DEFERRABLE and INITIALLY DEFERRED, are important in transactions, because the default for constraints are to be non deferrable and immediatly applied, which means that when you launch the SQL command, if you have, say, ON DELETE restrict; it will immediately fail, even if you're in a transaction and are planning to delete the other things afterwards, in which case DEFERRABLE tells to postgresql that the constraint *could* eventually be deferred to later, and the INITIALLY DEFERRED tells postgresql that it should not bother with the constraint before the COMMIT. (The default are NOT DEFERRABLE and INITIALLY IMMEDIATE.)

I'll try and add some tests to the options thingy with the postgresql adapter tomorrow.

Also, I'm not quite happy with the (re)naming of the *dependent options, I'm happy to change them back to something else.