Memristive KDG-BNN: Memristive binary neural networks trained via knowledge distillation and generative adversarial networks