Rewrite of SQL.cs

SQL.cs now makes more semantic sense, has a more efficient way of
handling errors. It also allows the code to run without a database.
Changes To Server Documentation