Season the beef: Combine the chili powder, salt, sugar, cumin, oregano, and allspice in a small bowl.
Coat the meat all over with the rub, and rub it in.
Put the meat in a Dutch oven or an oven proof high-sided skillet with a lid . Cover and refrigerate for 1 hour.
Remove the meat from the refrigerator and let it sit at room temperature for 30 minutes.
Braise the beef
Position a rack in the center of the oven and heat to 300°F. Uncover the beef, and add the tomatoes, onion, garlic, and ½ cup water. Cover and cook until the meat is fork-tender, about 2 ½ or 3 hours
Leaving the liquid and vegetables in the pot, transfer the meat to a large cutting board. When cool enough, shred meat, discarding fat.
Return the meat to the pot and mix in with the braising sauce.
To make the slaw. Using a mandolin or sharp knife, shred the vegetables and the apple. In a large bowl, mix all ingredients together.
Serve on tacos topped with slaw on flour street taco shells.