More Americans ‘socially liberal’ than conservative for first time – huge swing over past 20 years