Undulatory fish swimming: from muscles to flow