Add support async scripts

/to @bajtos 
/cc @ritch 

The PR adds two enhancements for boot:

Allow boot scripts to be executed asynchronously
> module.exports = function(app, callback) {...}

This is one of the reasons why the scripts should be executed the same way in both sync and async modes: we must not force developers to deal with an optional callback in every boot script.

Please simplify this (remove the check) and ensure the bootstrapper handled the sync invocation of async script in a nice way.