[#80294550] feat (config) Improve app creation flow

- Change koast so an app using koast can start with
```javascript
var koast = require('koast');
koast.configure();
koast.serve();
```
or
```javascript
var koast=require('koast');
koast.configure({/* specify config */});
koast.serve();
```

koast applications don't need to worry about koast.config.loadConfiguration()
and koast.config.whenReady() before starting the app.

- Change koast.config so when manually setting the config object, shortstop
resolvers can still be used.

```javascript
var koast=require('koast');
koast.configure({
  appConfiguration:
  { app:
    { port: 'env:PORT|d'}
  }
});
koast.serve();
```
Merge pull request #46 from e-schultz/feat-improve-app-creation

[#80294550] feat (config) Improve app creation flow
Adding initial koastified notification code
Implementation of koastified notifications module
Add tests + docstrings and move config files
Export send function instead of object, fix tests, improve error handling
Use koast logging, make GCM collapseKey and APN badge optional
Update for koast 0.4. Update documentation.
Update for new config convention, including error handling and tests
Make jshint happy
Add missing config checks