Refactor directory enumerator, add Trace, CFStringUtilities, and macros.

Directory scanning is now split into two parts: the core scanner logic, and the
platform specific directory scanner implementation. However, some scan logic
is left in the platform part so that platform specific features can be leveraged
to speed up scanning.

Macro helpers (Base/Macros.h, Base/Attributes.h, Base/DPointer.h) has been brought
in from Ayane.

The Trace utility has also been brought in from Ayane, however it is expected to
be upgraded.