Meta-Cognitive Neuro-Fuzzy Inference System: A machine learning algorithm for function approximation, system identification, control, time series prediction, ...