Code Refactor

- Quest\QuestTask and QuestState are now seperate. Didn't make sense to 
combine the two if the states were subjective to a given entity.

- Merged RpgCharacter and Character base class, now in RpgBase. 
Meaningful implementation of Character base class cannot be implemented 
into the engine without becoming too specific.

- Refactored Dialogue subsystem from the engine and moved it to the 
rpgbase. Completely removed Dialogue editor. The new file format should 
make them relativley easy to manage by hand until a proper editor can 
be written.

- Entities now have a location & direction. It did not make sense to 
allow only the property location to an actor. Non-actor world entities 
still correspond to a world and thus must have a location property for 
that world.

 - Cleaned up\removed unused resources

 - Resolved #25, now using much cleaner implementation.

 - Resolved #21, now using JSON backend. Most resources have been 
converted to use the json format.

 - Removed state saving of entities. State saving should be handled by 
the game, not the engine.

 - IResourceLibrary now handles loading of four different types of 
resources:
	- configuration [Client\Server\Entity configuration files]
	- script [Script resources, this allows flexibility of 
precompiled scripts to user.]
	- Entity [World Entities\Actors]
	- Asset, texture, audio etc...

- Refactored item slot subsystem. Items scripts can implement custom 
context menu options.

- Cleaned up RpgCharacter class.

- Button to core UI subsystem no longer has a background sprite. It is 
easy to implement a more complex button in extentions, there isn't much 
of a need for a complex button to exist in the core ui subsystem.

- Fixed a bug in WorldView UI component, rendering the panel background 
over-top of the rendered world if the background was set to be 
rendered.

- Map Editor has been rehauled and is now significantly more stable and 
is entirely self-contained module that extends strictly off of the 
jevaengine base and does not build off of the rpgbase, making it more 
general purpose.

- Missed a very obvious size optimization method for raw map data, that 
will dramatically reduce their size and processing time. Previously, 
layers were described by an array of indexes into a tile-set. If the 
given element of the layer was empty, it would equal -1. Since a large 
majority of higher-level layers were scarcely populated, this meant 
_many_ adjacent -1 consuming a lot of data with virtually zero meaning. 
Now, the negative value is equal to the number of indexes to skip. 
Turning something like -1, -1, -1, -1, -1, 5, -1, -1, -1, 6 into -5, 5, 
-3, 6

- WorldView observers are now passed the relative screen location (that 
is, the location relative to the position of the WorldView panel) 
rather than the absolute location of the cursor when it has been moved 
or a selection has been made. This is much more natural to the 
observer.

- Renamed Entity base class's getName method to getInstanceName as to 
avoid confusion that it may cause when RpgCharacter introduces the 
method getCharacterName.

- Panel would keep track of the control with the focus. If the focused 
control was removed, it would still be referenced as the 'focus' 
control by the panel and was thus still indirectly accessible. Fixed.

- core introduced new argument to initialization. The argument 
specifies in which mode to place the core initially. If it is placed in 
a logic-only mode, it will not allocate any visual resources or perform 
any rendering. Ideal for server-side implementation.

Jeremy. Wildsmith.