Electric carmaker Fisker to go public in $2.9b deal