Enforce stricter jshint settings.

Core:
- Deprecate QUnit.current_testEnvironment.
- extend() no longer copies over prototype.
  Since QUnit is an instance of itself (a hack to differentiate
  between QUnit[event]=fn and QUnit.event(fn)), fix usages
  of extend(.., QUnit) to QUnit.constructor.prototype.

Test:
- Variable fn2 was unused. Added a test for it (diff6).
- Variable diff/same were unused, converted into a comment.