The Development and Validation of SINATRA: A Three-Dimensional Direct Simulation Monte Carlo (DSMC) Code Written in Object-Oriented C++ and Performed on Cartesian Grids