more aggressively and consistently push down 'not'

Reduces the number of generated double negative conditions resulting
from expressions such as 'unless a.include? ...' or 'unless a.empty?'