FairVFL: A Fair Vertical Federated Learning Framework with Contrastive Adversarial Learning