This patch cleans up the include guards, assisted by the tool/fix_include_ifndef script.
This patch curates the API documentation to become suitable for the functional specificaton, which is partially generated from the header files.
Fixes #1432
This patch changes the top-level directory layout as a preparatory step for improving the tools for managing 3rd-party source codes. The rationale is described in the issue referenced below. Issue #1082