Switched to CMake for automatic header list generation.
Moved internal and external into om/ to avoid name collisions.