Add basic JSHint support
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-case fixes for `boss` warnings, `eqnull` support, 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.