Added SoftDeleteable ODM implementation

Changed existing files to be more generic and added some ODM specific files to make it all work.