On-line learning in switching and drifting environments with application to blind source separation