A review on polyamide thin film nanocomposite (TFN) membranes: History, applications, challenges and approaches