JSHint Fixes

Mostly, these changes are simple changes to appease JSHint: unused variables, re-declared variables, missing keywords (e.g., `new`), function-scope strict mode pragmas, special-cased uses of the `boss` and `eqnull` options, missing/extraneous semi-colons.

As well, component.js had a vestigial copy of `checkSerializable()` that was removed, and base.js now has a proper copyright/license comment.