Various minor code quality fixes and clean up

Fixes:
* Add \b to Firefox User-Agent match, this prevents matching
  against a potential Firefox v70-89.
* Use boolean cast instead of isPlainObject (unnecessarily strict).
  No need to hardcode that it happens to be implemented as an an
  object literal right now, the API is its properties. The check
  is still useful to have in general so that we avoid an Uncaught
  TypeError for property of non-object if it is something
  unexpected, but a truethy check suffices (all truethy values
  support dot property access).
* Omit second argument to setTimeout (inspired by jQuery core).

Clean up:
* Avoid underscores in variable names.
* Avoid undescriptive variable names like "_", in this case "i"
  isn't much more descriptive by itself other than by convention
  for iteration counter.
* Whitespace.

Change-Id: I2557386f7e12bf2985b1396acba820a1bf79bd40