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) {...}

There are too many `process.` variables that need to be deleted. Please nest them all into a single top-level var that can be removed in an `afterEach` hook.

Example:

```js
process.boot.loadedFooJS
process.boot.barSyncLoaded
```

Also keep the naming convention consistent - `loadedBarJS`, `loadedBarSyncJS`, etc.