Self-Assembly Of Magnetic Nanoparticles: A Tool For Building At The Nanoscale