Core: Skip tests with no/falsy callbacks

_I'm opening this as a pull request instead of an issue to make rejecting it easier if that is the final determination. If so, please consider cherry-picking 765771c4a17b508d8357f361c3b1036964f7cd9a anyway. If it is instead accepted, it should be coupled with a documentation change at [jquery/api.qunitjs.com](https://github.com/jquery/api.qunitjs.com), which I am more than happy to submit._

In https://github.com/jquery/qunit/issues/637#issuecomment-53467155 and https://github.com/jquery/qunit/pull/434#issuecomment-15652708, @JamesMGreene advocated for a syntax like `QUnit.test( "pending test" )`. 3f08a1aa1e03ec99eed7ebe31b36132ccc245a56 then added `QUnit.skip`, but not the above Mocha-like implicit skip. Although I was not a fan of that style at the time, thinking about how to isolate Sizzle dependencies in the jQuery core suite has me reconsidering. In particular, I'd like to take advantage of something very similar in order to inline test preconditions rather than wrap tests in if blocks: `QUnit.test( "name", preconditionsMet() && fnTest )`.

Implementation broke no existing unit tests, and in fact I found an opportunity to use the new functionality within the logs tests as I was updating them.