Fixes to make JSHint happy

These fixes include:

* Avoiding accidental globals
* Syntax fixes (e.g., semicolons)
* Changing function definitions to function vars, when the scope they're declared in makes it unclear where the function would be hoisted to. (For example, a function that's defined within an object literal)
* Using `exports` instead of `Shiny`
* Telling jshint in a few places that yes, we want to do dangerous things like `eval()`
* Checking for `hasOwnProperty` in for-in loops.

Also, the unused `InputSender` was removed.