don't implicitly mark objects scheduled for unloading as dirty

Fixes trello#21.

When an object is scheduled for unloading at the end of the request,
don't automatically mark it as dirty; it may not even be loaded, in
which case this would cause the object to be loaded unnecessarily. If
there are changes to be persisted, the object must have been marked as
dirty by the standard mechanism (persistence helper proxy).
don't invoke callback twice if the callback itself throws

Problem uncovered while testing the fix for trello#21: the "regular"
callback invocation was inside a try block whose catch clause called
the same callback again in case of errors.
This change restructures the RC.run function so that the try-catch
only covers the request function call, not the part which invokes the
callback. pers.postRequestProc is not expected to throw (async
function); if it still does, the error should be handled by the
Session domain.
run RC.run function in Session domain context

to make sure unexpected errors thrown during/around request processing
do not crash the GS worker process.
Merge pull request #35 from yelworc/trello#21

don't mark objects scheduled for unloading as dirty