Bug 999755 - Add neuter() variants to vary data pointer.  Also fold in the followup patch in bug 1002864, to ignore disposition when buffer contents can't be changed.  r=Waldo, r=sfink, a=lsblakk