Added friendly handling for nonexistent apps

Fixes #1829

* Added try-catch block in core/server/apps/loader.js to catch and reject with an error when getAppByName fails (meaning app loading failed, meaning the app directory doesn't exist). Error message as follows:
> Error loading app named <name>; app directory (/content/apps/<name>) does not exist."

* Added .otherwise blocks with error logs to core/server/apps/index.js to catch the new rejections and log error message to console