Make all IStrategizer classes are inside IStrategizer namespace
- Use IStrategizer as the only namespace in the engine and remove all other namespaces, except BWAPI Client code which is not within any namespace yet, left for further refactoring
- Also prepare the engine to use WorldClock as the Update(*) methods parameter
- Remove the redundant serialization code in each serializable class declaration and replace it with OBJET_SERIALIZABLE macro

Signed-off-by: MHesham <mhesham.fcis@gmail.com>
Add the Logger class to be used for engine wide logging

Signed-off-by: MHesham <mhesham.fcis@gmail.com>
Use WorldClock for all update methods in the engine
- WorldClock is not singleton anymore, it is a member of IStrategizerEx class
- IStrategizer is the only class responsible for updating/resetting the engine clock
- The clock can be accessed as a readonly member using a read only accessor in IStrategizerEx
- Fix some "for (int i = bla bla bla" to "for (size_t i = bla bla bla" to avoid compilation warnings

Signed-off-by: MHesham <mhesham.fcis@gmail.com>
Fix TrainAction and BuildActionEx
- Fix TrainAction Alive/Success conditions
- Set proper state timeout for Train and Build actions
- Add IsTraining method inside GameEntity to test if a certain unit is training another unit
- Disable plan graph drawing in BWAPI Client for now
- Disable Case Revision until a proper Machine learning algorithm is used

Signed-off-by: MHesham <mhesham.fcis@gmail.com>