A Survey on Contrastive Self-Supervised Learning