Nanofiltration for trace organic contaminant removal: structure, solution, and membrane fouling effects on the rejection of perfluorochemicals.