Surface nanobubbles and their roles in the flotation of fine particles - a review