Can Reversing Computation Reduce Energy Consumption? The Science of Reversible Computing and Landauer's Limit