Deferred default globals initialization on Runner

The globals array was being automatically initialized when a Runner instance
was created(on constructor). This was refactored to a new Runner method:
'initDefaultGlobals', so mocha can better support deferred test execution.

This also fixes a bug introduced by the 'semaphore' commit, since in order to
support semaphore the runner instance was no longer being initialized(and
returned) by 'Mocha.run'.