Vital Updates!

- More fixes and updates to the task factory

I wanted to do a little cutscene just for fun before releasing this and
started thinking about how to design the code, as the last cutscene I
did was very messy. So I did a little thinking and spit out some code,
and the ScheduledChainFactory was born! Chain factories are chain of
runnable tasks that can be executed in an orderly fashion. Tasks can be
appended to the internal queue to later be ran in the order that they
were appended. Chain factories are a one-shot operation meaning that
once ran, they cannot be re-ran. These can prove to be useful when
programming operations that require an extensive amount of tasks
executed in succession (eg; cutscenes, random events, holiday events,
etc.).

As you know, this task system is not cycle based, but runs on multiple
threads and workers are dispatched asynchronously by
ScheduledExecutorService. This proved to be a problem for me however,
because when using ScheduledExecutorService you cannot dynamically
change the delay which proved to be hassle when sketching out my ideas
for how I wanted combat to be designed (and can cause problems for lots
of other content). I solved this problem by making another
implementation of the ScheduledWorker, and the result was: the
DynamicScheduledWorker. This is basically your average cycle based task,
that uses the worker from the parent (ScheduledWorker) class, to process
it.

@Override
public void task() {
this.cyclesPassed++;

if (this.isRunning() && this.getCyclesPassed() == this.getCycles()) {
this.cycle();
this.setCyclesPassed(0);
}
}

this allows for dynamic (runtime) changes to the delay, rather than
having to stop the task and start a new one with a different delay :)

- Prayer updates

Prayer restoration and bones on altar.

- Updates to the movement queue action listener

There was a problem where if an exception occured in the task while
walking to an action, the listener would not reset and therefore would
cause problems when walking to future actions. I've solved this by
adding a "finally" statement so the listener will be reset regardless if
there was an exception or not.

- Spellbook switching

- Graphical user interface

I hesitated making this, but now I don't regret it one bit. Usually when
I see these things in servers it irritates me because they are an
eyesore (too big, annoying graphic on it, too bulky, etc.) and justan
annoyance, so I tried to make this as light and non-annoying as
possible. It's my first time doing anything like this, and although I
did use WindowBuilder to design the basic layout I'm still pretty stoked
that everything works (and how easy it was).

- Firemaking finished

Supports burning to ashes, walking one space after lighting the fire,
and not being able to light a fire on the same position as a ground item
or another fire.

- Mining almost finished

So far supports rock going empty and then respawning, supports multiple
players mining on the same rock (if the rock goes empty only one person
gets ore), and lots of other cool ish. Prospecting will be finished
tomorrow, and I'll have a chance to test this more, as its exetremely
untested and more than likely to have bugs.