Got tests working.

Removed default values for timeouts and throw errors properly.
Shuffled done() callbacks location.
Properly placed one more done() callback.
Added npm dependency on mocha.
Added rewire dependency.
Implement nested locations

This allows finer-grained control of individual apps, while still
allowing users to conveniently inherit settings from enclosing
scopes.

Previously:

server {
  location /marketing {
    simple_scheduler 100;
    log_dir /var/log/shiny/;
    site_dir /srv/shiny-server;
    run_as shiny;

    log_dir /home/marketing/shinylog;
  }
  location / {
    simple_scheduler 100;
    log_dir /var/log/shiny/;
    site_dir /srv/shiny-server;
    run_as shiny;
  }
}

With this commit, you can now do:

server {
  location / {
    simple_scheduler 100;
    log_dir /var/log/shiny/;
    site_dir /srv/shiny-server;
    run_as shiny;

    location /marketing {
      log_dir /home/marketing/shinylog;
    }
  }
}