JSHint Audit

Submitting this PR as a conversation starting point. I'd like to implement JSHint more completely (better?) than this, but I want to get feedback on my approach so far.

I deliberately took the simple path here, though I did take a few small liberties. I most likely missed something, or did something in a way you disagree with. Let's make it better!

The diff for base.js went whitespace weird because I tweaked indentation. :rage1: