Energy limits in computation : A Review of Landauer's Principle, Theory and Experiments.