Allow registration of Actions using a callback that returns an Action instance

Basically implementing what Brion suggested on wikitech

This allows for injecting dependencies while still only loading the actual class when needed.

Simple example:

$wgActions['epundo'] = function( Page $page, IContextSource $context = null ) use ( $differ ) {
	$undoAction = new \EducationProgram\UndoAction( $page, $context );
	$undoAction->setDiffer( $differ );
	return $undoAction;
};

Change-Id: I6c0f4022f1df1ebaf9cd1a5fe4bd362d0ecc0d62
Merge "Allow registration of Actions using a callback that returns an Action instance"