The Brain as an Efficient and Robust Adaptive Learner Training Spiking Neural Networks for Cognitive Tasks: A Versatile Framework Compatible to Various Temporal Codes