Extremely crucial updates to server gameplay

- Crucial fixes to task system

There was problem with the task system where if you had set the task to
run right away and the code stopped the task on first execution, it
would
throw an error message. This was caused by the task being stopped before
it had even started, and I have resolved the problem. Also, I have
adjusted this task system to use a thread pool instead of a being a
single threaded executor. This can prove to be extremely useful when
there
are many requests for tasks to be ran.

- Redesigned death for entities

Rather than having a single method for both players and mobs which in
all honesty doesn't make sense, I've made it so players and mobs have
their
own forced implementation of death (using an abstract method).

Also, the timing for player death was way way off so I've adjusted the
times so everything looks perfect :)

- Static global items

Support for static global items registered on startup, or even in-game.
Also has support for item respawning after being picked up.

- Worked on shops

Worked on values (completed), and worked on selling which is almost
done. I have to fix an error with the items being displayed on the
interface, and then do buying, and it'll be finished (hopefully
tomorrow?)

- Perfected private messaging

The messaging portion of private messaging was perfect, but the lists
refused to update when someone in your friends list would login/logout.
I've fixed this issue and everything now works perfectly :)