Keeping doneCallbacks clean, massive memory leaks fix

Originally doneCallbacks never have been cleaned, this way if DeferredObject is application level and different views, android activities passing themselves as callback - reference kept forever causing massive memory leaks.

Moreover, objects that register callbacks after .resolve/reject was called still were writted into callbacks lists