Various acknowledged updates / deletes / writeconcern fixes

Covers:
Fixed acknowledged updates / deletes bug -  JAVA-1560
WriteConcernResult should be an abstract class - JAVA-1563

Rather than make this a pseudo-public class, try to make it package private and provide public factory methods in DeleteResult to create instances:

   public  abstract class DeleteResult {
        public static DeleteResult acknowledged(final long deletedCount);
        public static DeleteResult unacknowledged();
  
        ...
   }