Implements a pluggable DML interface

We're still using our [DMLManager](https://github.com/patronmanager/apex-dml-manager) shim but are making progress toward using the Patterns

As such, we still need to call insertAsUser/updateAsUser when using SObjectUnitOfWork

This pull request allows pluggability of the DML operations 

An example of how this would be used is as follows:

````
public class pmgr_SObjectUnitOfWork extends fflib_SObjectUnitOfWork{
	public class FLSDML implements fflib_SObjectUnitOfWork.IDML{
		public void dmlInsert(List<SObject> objList){
			DMLManager.insertAsUser(objList);
		}
		public void dmlUpdate(List<SObject> objList){
			DMLManager.updateAsUser(objList);
		}
		public void dmlDelete(List<SObject> objList){
			DMLManager.deleteAsUser(objList);
		}
	}
	public pmgr_SObjectUnitOfWork(List<Schema.SObjectType> sObjectTypes){
		super(sObjectTypes, new FLSDML());
	}
}
````