GPs vote overwhelmingly to take collective action over contract