Ab initio study of oxygen segregation in silicon grain boundaries: The role of strain and vacancies