Living->heartbeat() now reselects from db every time, so alive() always returns the correct answer; Submission.t tests rejigged and now pass
fixed typo in method call
_lock() and _changed_marker() now always get values from from db; _prepare_elements_and_states() transacation now locks the row
Persistent->reselect_values_from_db hacked with a 1 second delay so that new Datasource.t tests on avoiding the same thing happening more than once pass