Text this: DS4NN: Direct training of deep spiking neural networks with single spike-based temporal coding