We're supposed to be building simple, hackable tools but atbuild is
becoming more of a monolithic tool. This patch aims to change that.
There are many reasons some feature should not be included in core:
1. Core needs to be minimal so we can bootstrap it on new platforms;
every new feature is a new burden
2. Core needs to be x-platform but many features do not
(see: xcode-emit, packageframework)
3. Features may want different release frequency (see: xcode-emit) or
don't want to coordinate with atbuild
4. Features may be "not part of AnarchyTools" (Caroline) but still
commonly used together
5. I'm annoyed at upstream over the static linking issue, and thinking
of ways to keep us from being that point of central failure that annoys
somebody else someday
Therefore, we introduce the world's simplest plugin system designed to
move code out of core, or keep code out of core that doesn't need to be.
xcode-emit and Caroline will consume this API. packageframework is a
good candidate for a plugin that might be moved out from core.
Documentation to follow