Self-supervised Learning and Adaptation for Single Image Dehazing