Southampton edge out West Ham in Boxing Day thriller