Added callback to Process

Added a callback to Process, which is executed once the process is done.

It takes the block's result as a parameter, which may eventually be null if the block is not a reporter.

You can test it by adding a test menu item to *BlockMorph.prototype.userMenu*, such as:

```
menu.addItem(
	"callback test",
	function() {
		var top = this.topBlock(),
			receiver = top.receiver(),
			stage;	
		if (top !== this) {return; }
		if (receiver) {
			stage = receiver.parentThatIsA(StageMorph);
			if (stage) {
				stage.threads.stopProcess(top);
				stage.threads.startProcess(top, false, false, function(result) { alert(result) });
			}
		}
	}
);
```

Hmmm... you're right, this might not be want we want.

If I understand this correctly, the callback gets executed *at every single block*. Instead, what we want is to execute the callback just once and only when the user clicks on a lone reporter (which could, of course, have other nested reporters as inputs). In this case the process' top block is reporter and the *process'* result is what we're interested in. We only have that once the process is done and ready to be terminated. Therefore it seems to me that the right situation to call the callback would be in class ThreadManager::removeTerminatedProcesses. What do you think?