listeners/github: create webhooks

also added a util function in singularity to get app domain
required config schema additions & some comments
test/listeners/github: added tests for webhook creation & conformed to BDD
listeners/jenkins: do not start when app has no db

also added test
Singularity: simplify event names

- Jenkins listener updated for this
- updated tests to reflect new behavior
route/cfg: use bodyParser() for requests
listeners/github: update for new singularity events

also tweaking webhook creation to take a single repo at a time, updated tests to reflect behavior
Singularity: default port for getDomain(), make logging less verbose

updated & added tests for these changes
listeners/github: clearer logs for webhook creation
listeners: adding singularity.configuration.updated

so that the application can react to changes in the runtime cfg
singularity & db: configuration persistence

also moved initialization of app.db into singularity, updated test
test/libraries/singularity: no cfg persist to silence logs
libraries/singularity: inital config save on persist_config
libraries/singularity: check for non-object
listeners/jenkins: skip pushes with no associated project
listeners/jenkins: update schema of push_projects - easier to store in mongo
updating logic & tests to account for push_project schema change
listeners/jenkins: refactor out logic for findPushProjectForRepo()
test/listeners/jenkins: findPushProjectForRepo() & slight refactors for push_project
listeners/jenkins: update pushFound() for new schema change
listeners/jenkins: test cases for most methods using findPushProjectForRepo