[feature][experimental] Added initial version of on demand processing architecture.
[refac] Changed the names of layers references names
[refac] Updated the main file to use the new layer names
[fix] Added missing changes to the previous refactorization
[feature] Added user data field to store needed information
Added posix io layer prototype
tabs->spaces
Added missing method calls
Added layer configuration for future use
Removed unneded casting
Added tests for all layer interface methods
cleaning, formatting etc.
[build] Added experimental to the build system
[build] Added debug flag whenever the build ment to be debug
[feature] Added debug information to the layer in debug builds

This will allow us to easly track the origin of the layer and to improve the
debug capabilities of the system.
[fix] fixed debug info data initialization
[fix] Unused variables warning
[feature][build] Added unit test workspace for experimental layer
[refac] refactorized the core functions of the layer system
[fix] problem with one wrong layer name