Seven million cancers a year are preventable, says report