Merge branch 'release/M1' into master

* release/M1: (113 commits)
  chore(karma, grunt): better configuration for codecoverage detection
  chore(karma): correct the configuration which files should be used for testing
  refactor(tests*): refactored some tests to not have multiple expectations in a single test
  refactor(gruntfile): removed some unnecessary outcommented lines
  chore(gitignore): added .nodemonignore while it will automatically created and removed during grunt execution
  fixed(gitrequesthandler): the filename was not correctly logged when file was not found
  chore(shell): added some shell scripts to automate some tasks
  chore(karma): added the karma-spec-reporter to package.json and switched to this reporter to get a more detailled output about the executed tests
  chore(karma): added test coverage with istanbul
  Refactored after code review
  refactor(app.js): removed a unused and outcommented static route
  refactor(git): removed the unused wrapping from fs.exists to a promise
  test(gitrequesthandler): added a test for the case when repository url is missing
  refactor(tests): the tests for each requesthandler are now in it own files
  refactor(lib): renamed the function AbstractError to AppError
  refactor(*): underscore.js removed, jshint updated because it had some dependencies to underscore
  chore(grunt): Added new tasks and node modules to measure the code coverage of our tests
  chore(grunt): grunt:dev set singlerun=false to let the browser alive after the test run
  Fixes #25 Refactored grepResultParser
  chore(grunt): gruntfile optimized to let run karma in background with output
  ...
procfile changed
fix(app.js): changed the handling for env.host

When no hostname is explicitly set in the environment variable the app.list function will be called without the hostname
This was a problem with heroku
Merge branch 'master' into develop

* master:
  fix(app.js): changed the handling for env.host
  procfile changed