Better AI by fixing hashcodes of pathTiles.

Still needs more work: PathFinder currently performs too much work
though it is more efficient now.

CHANGES:

Character.java:
*Moved overHealBurn() and statusEffects() from the DungeonLoop and
placed them here to be run after each character's turn has ended.

*Made revive cleaner by using the fact that all actions are performed on
the same deadCharacter.

*Added a limit to how long a path is searched for. If it goes through 25
tiles, then it gives up and can do an alternate task. To be fine tuned.

*Added alt. case for goToCharacter. When currentPath is Empty, it does
nothing, but that can be added later.

DungeonBuilder.java:
*Messed around with the test room. Removed some unneeded components.

DungeonMain.java:
*Moved around components that delete numbers in an attempt to prevent
concurrentModificationException. Not sure if that fixed it because of
the way the game is running right now (By constantly printing "Player")

*Forgot to mention last update, now a revived slime that is friendly has
a floating heart. Something like this can be used for status effects as
well.

DungeonTile.java:
*Implemented hashCode() and equals() methods that may be used later.

Enemy.java:
*Removed enemyID because it was pointless- it was intended to make
deleting easier but just made things a mess.

*Only unfriendly enemies will be deleted from the enemy list. (Enemies
that you revive are not added to this list and thus cannot be removed.)
I am considering removing this list. Scanning through the character list
should be adequate for any needs.

PathTile.java:
*Added the hashCode() and equals() methods. Previously the hash
generated took everything including cost into account. Thus, identical
tiles would be considered different unless the cost is the same.
This messed up the hashTable in PathFinder() causing an infinite loop.

README.md:
*Readded from old version. :>

Window.java:
*Made less silly. Now an instance of Window doesn't have to be
instantiated for it to work.