David Cameron's new-age Tories take a hit as shadow home secretary says B&Bs should be able to turn away gay couples