Jamaica deserved to be there after their 2nd place finish in the Gold Cup last year.
As for why Haiti is in over the others...maybe the others could have turned down invites. It happens frequently, though this is the first time the tournament has actually been played in North America. I know Japan was invited in 2011, even, though the earthquake prevented them from participating. Jamaica was even in last year's tournament alongside Mexico (who have been in every Copa America since 1993). Honduras last participated in 2001 and Trinidad and Tobago never has. The US used to get invited to every tournament, but didn't go to any of them between 1995 and 2007 because of scheduling conflicts with the MLS.
It's a weird tournament because CONMEBOL doesn't have enough member nations to throw a full tournament with just 10 member nations, so they typically have to bring in two countries form outside CONMEBOL just to get to 12 teams. The pool was increased to 16 for this one.
edit: Aha, answers! Jamaica qualified by winning the 2014 Carribbean Cup, while Haiti beat Trinidad and Tobago in a playoff game to earn their berth (Panama beat Cuba for theirs). Costa Rica qualified by winning the 2014 Copa Centroamericana, while the US and Mexico didn't need to do squat for obvious reasons.