Okay, don't let the long ingredients list scare you! This is easy!
First, chop the chicken. I like to chop mine when it's partially frozen--it's way easier.
Place the chopped chicken in a ziploc bag or bowl and add all the marinade ingredients. Don't forget to chop up your cilantro before adding.
Close the bag and massage to mix all ingredients thoroughly. You can also stir with a spoon if you're using a bowl, then cover the bowl.
Place in the fridge. If the chicken is partially frozen, marinade on the counter until chicken is thawed before transferring to the fridge.
Marinate for 4-12 hours.
Before cooking the chicken, start the rice. Bring the water and any coconut milk you won't need to a boil in a medium-sized saucepan, then add the rice. Return to a boil, then reduce heat to low. Cover (but make sure the air can vent, or your rice will boil over!) and allow to simmer for about twenty minutes until all liquid is gone and rice is fluffy.
When ready to cook, heat a frying pan on medium high heat and grease well with olive oil. Pour about half of the marinade and chicken onto the pan, then cook, stirring frequently, until chicken is almost completely cooked through. Occasionally pour off excess marinade into a saucepan. As you're cooking, chop up the shallot and garlic in the sauce ingredients, but keep the two separated.
Transfer the chicken to the saucepan, then cook the other half of the chicken and marinade in the frying pan. Transfer that to the saucepan as well, but don't turn the saucepan on yet!
Now, with the frying pan still on medium-high, melt the two tablespoons of butter. Add the onions and caramelize for about a minute, then add the garlic and continue to cook until lightly browned. Add the seasonings and stir. Pour the tomato sauce in with the onions and garlic and allow to return to a simmer in order to absorb the flavors on the bottom of the pan. Pour the tomato sauce/onion mixture into the saucepan. Add the coconut milk.
Stir everything together until thoroughly combined, then place the saucepan on the burner on medium heat. Allow the mixture to come to a simmer, stirring frequently. Reduce to medium-low and simmer, stirring, for about 30 minutes.
When rice and masala are done, remove both from heat and spoon the rice into a bowl. Coat with masala (but don't stir) and garnish with cilantro before serving!