- More complicated Amber structure: now it has areas consisting of
several shadows and inter-shadow space. There are 'true shadows' and
secondary shadows.
- Presentation tip: initialization lists.
- Ugly world places output added.
- Added some info output.
- Model modified.
- Going direction doesn't work, only day ticking.
Presentation tip: testing of lambdas is needed.
- Some pseudo-Maybe type is invented.

Presentation tip
In order to do a monadic actions connecting for abstract type D,
a template std::function is needed! Something like this:
typedef template <class D> std::function<Result<D>(D)> SafeAction;
SafeAction<ShadowResult> action = [](const D& data) { return
safeChangeData(data); }
See magic.cpp.
- Previos commit defect fix.
Compilable version of magic.

Presentation tip
Difficulties with template separated implementation:
- the '.tpp' pattern;
- the 'extern' keyword;
- the std::function templating problem;
- 'instantiating polimorphism'.
Consider:
- http://stackoverflow.com/questions/495021/why-can-templates-only-be-
- https://stackoverflow.com/questions/115703/storing-c-template-
- http://stackoverflow.com/questions/8130602/using-extern-template-c0x
- http://stackoverflow.com/questions/3575901/can-lambda-functions-be-