A Fast, Flexible and Accurate Monte-Carlo Tool for Simulating X-Ray Fluorescence Tomography