made the DB#emit function call Updated, Created or Deleted on the emitting objects if they have those funcs. added DB#EmitUpdate that emits an updated on a given object (thus starting the emit/subscribe etc chain on that object). use this to make relationship chains emit updates up and down their relations.
made kc.DB contain a KCDB pointer instead of an actual KCDB, to simplify copying the DB struct. added kc.DB.inTransaction to note if this DB is a transactional context. created kc.DB#Transact that runs the provided func with a transactional version of itself (either a copy, within a new transaction, or itself if already transactional). made kol.DB.db a pointer. created a kol.DB#Transact similar to kc.DB#Transact, by using kc.DB#Transact to provide similar functionality. refactored kol.DB#Set to not send the inTrans bool to create, since the new Transact funcs already keep track of this.