Test: Introduce order independent testId to replace testNumber

Introduces testId, intended to be a unique identifier for a test
based off of module name and test name only, and is therefore
order independent, enabling asynchronous test loading.

Fixes #538
Core: Remove constructor

This constructor were implemented on @1039a2c, to tell if the
callback methods have been overwritten on the actual QUnit object.

It doesn't work for backwards compatibility and the old and deprecated
way to assign callbacks doesn't work anymore.

Making this change won't affect anything on the current API, even
assigning a new value on any callback function. The effects are the
same with or without this commit, proving the removed code is useless.
Core: Reorder code for cleanup
Core: Cleanup the logging callbacks factory
Callbacks: Restore and warn if some logging callback gets modified

Also fills the stack.js tests to verify the warnings