Refactor containers

Signed-off-by: MHesham <mhesham.fcis@gmail.com>
Fix Alias Substitution Bug and organize project files

Signed-off-by: MHesham <mhesham.fcis@gmail.com>
Replace CRT assert(*) calls with _ASSERTE(*) to fix the bug with assert behavior
- using the CRT assert(*) caused VS to jump to incorrect stack frames when pressing Retry on the assertion dialog

Signed-off-by: MHesham <mhesham.fcis@gmail.com>
Fix serialization bugs
- Bug with indirection for typedefs
- change UserObject state cookie
- Add cookie to Container class

Signed-off-by: MHesham <mhesham.fcis@gmail.com>
Fix std namespaces bug and some serialization bugs
- Remove std from serialization header files
- Change containers (vectors, set, map, pair) layout
- Add virtual destructor to ITraversable and Iterator classes
- Use unique IDs to identify Container and UserObject globally

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