Adding test for callbacks, abstracting callbacks a little

Instead of a setUploadCompletedCallback function we have an
addCallback function with variable event names (also, old method was
misguiding because of "set" when it was actually adding a callback
to the stack).

Also, instead of "upload_complete" we will name the event
"completed" (because this is all about uploads, "upload" seems
redundant. I suggest the naming convention is past tense, we are
talking about things that already happened.