Activity framework started #49

TrainerState deleted
Activity interface added
UpgradeActivity added
OverworldActivity added
BattleActivity added
BattleRegistry removed, because ActivityTracker and BattleActivity
handle it
ActivityTracker knows what Activity a Player is doing
toJSON methods return all the datas... unfortunately...
UI changes cause there was a little format output change
Services Refactored

Services relevant to Activities refactored to be handled by the activity
Moar #49

Refactoring Activities to provide ActivityServices
Activities are called using PlayerService.activity

** NOTE : THIS COMMIT IS BROKEN **
Pokemon Upgrading fixed

ActionType.UPGRADE added
ActionFactory uses ActionType.UPGRADE to construct UpgradeAction
UpgradeAction added, which sets player activity to UpgradeActivity
UpgradeActivity added
UpgradeService added, which handles upgrade requests
PokemonView renamed to UpgradeView, allows to accept no changes
JPokemonService cleanup started
Prof Oak will let you upgrade your pokemans!
Record saving/restoring #48

"Zach.jpkmn" save file regenerated
Lots of good ground work #51

Player will give you it's whole Bag and PokemonStorageBlock
Bag is Iterable<Item>
ActivityServer #51

ActivityServer traverses the DOM to build JSON for the activity to send
JPokemonVisitor moved to org.jpokemon package
AbstractJPokemonVisitor moved to org.jpokemon package
UpgradeServer added
UpgradeActivity uses UpgradeServer to supply additional data for request
Pokemon available stat points exposed
PokemonStorageUnit.indexOf exposed
ActivityServer #51

ActivityServer traverses the DOM to build JSON for the activity to send
JPokemonVisitor moved to org.jpokemon package
AbstractJPokemonVisitor moved to org.jpokemon package
UpgradeServer added
UpgradeActivity uses UpgradeServer to supply additional data for request
Pokemon available stat points exposed
PokemonStorageUnit.indexOf exposed
BattleServer added, toJSON removed #51

BattleServer traverses the stuff to make json for the client
BattleActivity uses a BattleServer to do the needful
ActivityServer no longer auto-runs. Servers implementations must run
themselves
ActivityServer saves the player it was created with as the
calling_player
JPokemonVisitor specifies Moves be visitable
AbstractJPokemonVisitor vitits Moves from each Pokemon
Pokedex bugfix for loading when never having seen/owned anything
Data structure toJSON methods removed! :D
Item number exposed
BattleView/PartyPanel refactored; Player JSONObject is part of the 2D
team array
Visitor refactor

Most visit_xyz methods renamed to visit
BattleView shows the run button with the text "RUN"
RunTurn notifies user when the run is successful
Battle bugfix to remove all slots from battle when it ends
- Prevents infinite loop when selecting target slot for trainer attack
MapServer #51

MapServer added
OverworldActivity uses MapServer to appendDataToResponse
Area all wild pokemon exposed
Area all borders exposed
NPC options for player exposed
Refactoring #51

Activity specifies that getServer(player) instead of
appendDataToResponse
PlayerService puts the data from the ActivityServer onto the response
object
MapService takes ownership of it's stuff
JPokemonService simplified
Catch Rate #50

Catch rates added to db
Pokemon will tell it's catch rate
PokemonInfo has the catch rate
BattleView asks for item's target slot
Ball computes catch using the catch rate