Three-dimensional free-electron laser numerical simulation code, including the Transverse Gradient Undulator