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>