Theresa May has called a snap general election on June 8, claiming that divisions at Westminster risked hampering the Brexit negotiations.