Ingles otros materials science and technology for nonvolatile memories v1 cambridge