Add more robust error handling to server

Changes:
- Use the proper RESTful HTTP status codes for all endpoints (e.g. 204 rather than 200 when the response body is empty)
- Add consistent and more helpful error messages
- Handle invalid route parameters by checking if jamid returns empty objects (e.g. invalid contact IDs)
- Use res.send() rather than res.json() for consistency
- Handle three new signals

GitLab: #111
Change-Id: I1d48dc4629995ab9a96bb2086a9aa91f81889598
diff --git a/server/src/middleware/setup.ts b/server/src/middleware/setup.ts
index 3575fd0..a697b5a 100644
--- a/server/src/middleware/setup.ts
+++ b/server/src/middleware/setup.ts
@@ -27,8 +27,9 @@
   const isSetupComplete = adminConfig.get() !== undefined;
 
   if (!isSetupComplete) {
-    res.sendStatus(HttpStatusCode.Forbidden);
+    res.status(HttpStatusCode.Forbidden).send('Setup not complete');
     return;
   }
+
   next();
 }