To make the pulled pork: In a medium bowl, whisk together all the spices. Set aside.
Rub spice mixture evenly over the pork, store any extra spice rub in an airtight container with the rest of your spices. You can cook the pork right away but ideally marinate the pork in the spice rub for 4 hours or even overnight.
Preheat oven to 250 degrees F. Place a long piece of foil across a half sheet tray so there is some hanging off both sides. Then place another long piece of foil going in the opposite direction. Place the seasoned pork, fat side up, in the center of the foil and toss to coat with the olive oil. Tightly cover the pork with the foil, keeping the foil seam on the top. Place in the oven and cook for 3 hours. Remove the pork from the oven and carefully open the foil pack so the top is exposed but so that the foil is still catching the juices released from the pork. Place the pork back in the oven and cook an additional 2 ½ - 3 hours or until the pork is tender and easily shreds with a fork. Remove from the oven and turn on the broiler.
To make the BBQ sauce: While the pork is cooking make the BBQ sauce. Drain the dates and chiles from the warm water once they have softened. Add chilies to the sauce based on your spice preference. Place all the ingredients in a blender and blend on high until the sauce is smooth and shiny. Season with salt and remove to an airtight container and refrigerate until ready to serve.
To make the Whole30 mayo: Place the yolks, mustard, lemon juice and garlic in a blender and blend on high until smooth and combined. With the blender running slowly stream in the oil until the mixture emulsifies and forms mayonnaise. Season to taste with salt. Store in an airtight container in the refrigerator until ready to serve. You can use it right away but I like to serve it the next day after the garlic has flavored the mayo.
To make the coleslaw: In a large bowl combine the cabbages, fennel, apple, red onion, parsley, lemon juice and vinegar. Fold in enough mayo to lighten the coleslaw in color and give a creamy taste, up to a ¼ cup. Taste and season with salt. Refrigerate until ready to serve.
To serve: Top the pork with 1/2 cup of BBQ sauce and place under the broiler for 4-5 minutes or until the sauce has caramelized. Remove from the oven and shred the pork into bite sized pieces. Toss the pork with more of the BBQ sauce. Serve the remaining BBQ sauce on the side with the coleslaw.
All leftovers hold well in the refrigerator for up two days except for the BBQ sauce which will hold in the refrigerator for up to 1 week.