Only define noConflict when env is browser, no AMD

Move declaration of noConflict out of the actual module definition and into
the module-exporting function. This way, noConflict is not defined unless
the detected environment is browser without AMD modules.
Remove module's dependancy on root (global scope)
Remove module's dependancy on global 'setTimeout'

Explicitly pass a setTimeout method (obtained appropriately depending
on detected environment) to module-definition function, in place of the
'root' argument - a reference to the global scope which was in fact redundant
(and, moreover, plain wrong in the case of Node environment)
Update license
Bump patch version