Rafael Nadal reached the Miami Open final with a dominant straight-sets victory over Italy's Fabio Fognini.