Bunch of changes for goals, action and online execution
- Implemented CollectResourcesGoal
- Added IsGatheringResource API to GameEntity. This API helps to check if the current unit is currently gathering specific resource type.
- Added AdaptParameters method to the GoalEx class. This method is used to adjust the goal parameters before sending it to retriever
- Added BuildInfrastructureGoal
- Changed Action.UpdateAux behavior to not fail if an action failed when it tries to start execution.
- Did some refactoring in AdapterEx and added condition to AdaptBuildingForTraining so it returns buildings that have empty training slots
- Enhanced GatherResourceAction to gather gas from refinaries
- Added LOG switch that disables logging in files if its not specified
- Changed expansion and execution to hand goals for parameter adaptation before retrieving cases for them
- Commented the reviser changes so we get a consistent behavior for plan retrieval.
Change BuildInfrastructureGoal to treat supply as consumable resource
Changes to the learning from human module
- Fix BuildInfrastructureGoal learning from human
- Change CollectResourceGoal to be learnt in case of using new gatherer only
- Change GameTraceCollector to remove duplicated GatherResource and Attach actions
Merge branch 'master' of https://github.com/ogail/IStrategizer into action
Merge branch 'LFHD' of https://github.com/ogail/IStrategizer into action
Give the plan graph the ability to visualize itself as a string
- Remove the definition of OlcbpPlan from EngineData.h and move it to CaseEx which make sense

Signed-off-by: MHesham <mhesham.fcis@gmail.com>
Bunch of changes to learning from human demonistration
- Fixed LFHD to work on simple replays just fine. This required bunch of fixes in other engine's code
- Added TrainForce goal.
- Commented TrainArmy goal.
- Did a quick workaround to overcome watching a replay with 2 human players.
- Fixed problem with GatherResourceAction to get resource blocks that can be gathered by workers.
Lower the number of learnt cases to reduce perf hit.
Initial Game Model refactoring and removal of unnecessary and obsolete files

Signed-off-by: MHesham <mhesham.fcis@gmail.com>
Merge branch 'master' of https://github.com/ogail/IStrategizer into action

Conflicts:
	Build/IStrategizer/IStrategizer.vcxproj.filters
	Include/IStrategizer/RtsGame.h
	Include/StarCraftModel/StarCraftGame.h
	Source/IStrategizer/AdapterEx.cpp
	Source/IStrategizer/DestroyEntityTypeGoal.cpp
	Source/IStrategizer/GatherResourceAction.cpp
	Source/IStrategizer/RtsGame.cpp
	Source/IStrategizer/TrainArmyGoal.cpp

Signed-off-by: MHesham <mhesham.fcis@gmail.com>
Remove StaticComponent to simplify Game Model design

Signed-off-by: MHesham <mhesham.fcis@gmail.com>
Fixes to LFHD
- Remove TrsinArmyGoal
- Remove useOnce from EntityClassExist condition
- Fixes to condition's consume method
Merge branch 'action' of github.com:MHesham/IStrategizer into trainArmy

Conflicts:
	Source/IStrategizer/BuildActionEx.cpp
Introduce GameRace class to the World Model and do more refactoring to the World Model and fix OLCBP bugs
[Fixed] - When a goal is done we should bypass it regardless whether it succeeded or failed instead of bypassing on succeeding goals
[Fixed] - Gather action always failing for renegading resources like Gas
[Fixed] - m_idlookup map not initialized properly resulting in bug in Visualizer
[Refactor] - Reorganize World Model APIs and move time-agnostic Types and APIs (game types, game race and race dependent properties) into their own classes and separate them from time-dependant APIs and Types (e.g player entities, player resources, done and avail researches, etc..)
[Refactor] - Simplify World Model and try to make time-agnostic types a real time wrapper to BWAPI and not to cache any value and make them depend that BWAPI is connected

Signed-off-by: MHesham <mhesham.fcis@gmail.com>
Remove HandleMessage from OnlinePlanExpansionExecution
Merge branch 'action' of github.com:MHesham/IStrategizer

Conflicts:
	Build/Debug/IStrategizerEx.cb
	Source/IStrategizer/BuildActionEx.cpp
Fixes to LFHD
Make RtsGame completely snapshottable
- Refactor GameEntity and make it more light weight

Signed-off-by: MHesham <mhesham.fcis@gmail.com>
Merge branch 'master' of https://github.com/ogail/IStrategizer into action
Fix LFHD issues with resources goal and action