Self-Assembly of Nanoparticles in Dispersion and at Fluid-Fluid Interfaces