Moved all database code to respective scripts

All database definitions, statements and prepare calls have been moved
to the script that they are for. More changes and overhauls have been
made to a lot of database related features too.

Accounts:
Database interactions are now handled through interface functions.

Aliases:
Alias database statements are now under the alias namespace rather than
accounts.

Banlist:
Ban list code split into core database code and abstracted listing and
management UI code. Bans are now deactivated instead of deleted in order
to maintain a history of bans. Ban reasons and unban dates can now be
edited from the ban list menu. The menu also takes advantage of the
DialogPage buttons for easy flicking through pages.

Reports:
Reports have also been split into a core database functionality script
and an abstracted UI script. A major change to the database structure is
that the "type" field is now a string not an integer which removes the
need for an array of report types that must be updated for each new
report added in code.

IMPORTANT: Please update your "Accounts.db" database tables (bans and
reports) to match the new table structures. If a table has the wrong
number of columns, the server won't load and issue an error message.
Item duplication exploit fix to backpacks

Multi-tapping the add-to-inventory key while wearing a backpack and
having a full inventory would cause the same item to be added to the
container multiple times. If the player reconnects, they are recreated
as individual and fully usable items.

This also warrants a fix in SIF that disallows the same item ID to be
added to a container (and inventory) multiple times.
Molotov duplication exploit fixed

Since the SIF update, item extra data functions were replaced with
macros that duplicate the first parameter thus meaning if that parameter
is a function call then the function is called twice. This resulted in
two molotov items being created.

The item extra data setting is unnecessary anyway since throwable items
have a constant ammo count of 1.
Set autosave toggle to true by default
Fixed dialog page position for other resolutions

This position appears better on lower resolutions.
Removed debug prints from safebox and tent loads
Fixed get closest player function

By adding an "exception" parameter to GetClosestPlayerFromPoint which
ignores the specified player ID.