Spain's socialist PM calls snap election