Refactor #includes (Part 2).
Refactor #includes (Part 3).
Add missing file.
Linux build fix.
Update Doxygen file.
Refactor #includes (Part 4).
Fix unit tests.