Sainsbury’s has reported a fall in its pre-tax profit, as it reveals it has spent more than £560m on “keeping our prices low over the last two years”.