Memoize results of the browser.js methods.

Some browser detection methods are a bit involved (they create dom nodes and
do several things) to be calling them several times on page load. By caching
the results they will be calculated just once.

The isWideScreen method is not cached because the width of the browser may
change in desktop versions.

Change-Id: I0b8a863095fdcc84956b3e711baecf5936b99506
Merge "Memoize results of the browser.js methods."