Theoretical ROVibrational Energies (TROVE) : A robust numerical approach to the calculation of rovibrational energies for polyatomic molecules