U.S. retail sales hit 3-year high in March on gas price spike