schedulerInstance: hide global object, provide access only with new
getScheduler() global function
ARMv7-M-startup.S: rename lowLevelInitialization1() to
lowLevelInitialization2()
ARMv7-M-startup.S: add lowLevelInitialization1() - executed before
constructors of global and static objects
ARMv7-M-startup.S: rename defaultLowLevelInitialization_() to
defaultLowLevelInitialization()
lowLevelInitialization1(): add implementation which initializes main
instance of system's Scheduler, modify getScheduler() to just return
casted raw storage
Scheduler: move starting of idle thread and starting of scheduling from
Scheduler's constructor to lowLevelInitialization1()
lowLevelInitialization1(): use StaticThread type for idle thread