Preheat a grill to medium high. In a large bowl, whisk 2 tablespoons olive oil, the juice of 1 lemon, the garlic, shallots, cumin, cayenne, 1 teaspoon salt and half of the cilantro. Add the salmon and turn to coat. Let marinate 15 minutes at room temperature. Meanwhile, toss the hearts of palm and tomatoes in a bowl with the remaining 2 tablespoons olive oil, the juice of the remaining lemon, and the rest of the cilantro. Season with salt. Brush the grill with vegetable oil. Grill the salmon, round side down, until marked on the bottom, about 4 minutes. Turn and continue grilling until marked on the other side and cooked through, 2 to 3 more minutes. Divide the salmon among plates. Serve with the greens and hearts of palm salad; drizzle the juices from the salad over the greens.