Using DNA to program the self-assembly of colloidal nanoparticles and microparticles