Server updates

Addresses:
 - #190 -  Need to save project name in initial state
 - #209 - Catch server exceptions
 - #210 - Try to delete project DB entry even if directory removal fails

Catching server exceptions touches a lot of lines, mostly for indentation. Unfortunately that lengthens the diff, sorry. It also meant moving the DB connection out of the global space into a static class to better catch the exception. If we find any specific exceptions we want a more descriptive message for (like can't connect to the DB) we can add to the catch chain.