Add DeleteSubjectJob to allow to schedule a DeferredJob

CRAP: 14
CC: 100%

The removal of a subject from the Store is being moved into a
`DeleteSubjectJob` and if necessary can be scheduled as `DeferredJob`
(enables to run deletion as background job).

Prior SMW 1.9, the subject deletion did not initiate any clean-up of
possible associate subjects, the
`smwgDeleteSubjectWithAssociatesRefresh` setting will allow to refresh
entities that are connected to a deleted subject.

A subject may be connected to a large group of associates, it is therefore
advisable that `smwgDeleteSubjectAsDeferredJob` is set TRUE in order to
avoid any performance issues (or runtime errors) during the deletion process.

In case the deletion is executed as `DeferredJob` it is suggested that
the JobQueue is being run repeatedly within a narrow time frame to avoid
an increased backlog.

### Legacy (default) setting
$GLOBALS['smwgOnDeleteAction'] = array(
	'smwgDeleteSubjectAsDeferredJob' => false,
	'smwgDeleteSubjectWithAssociatesRefresh' => false
);
Add MwJobWithSQLStoreIntegrationTest

Use MwIntegrationTestCase to avoid DRY and encapsulate \MediaWikiTestCase
Merge pull request #79 from SemanticMediaWiki/tests

Add MwJobWithSQLStoreIntegrationTest