[attribute functions] Added 'exports api' attribute

This attribute indicates that the component has an API that needs to
be installed into the global install directory before any dependent
component, or itself, can be built.

This is the first in a series of changes that will obviate the need to
make a logical single copmonent into two -- one which installs the
headers and one which builds the component.
TODO
[docs] Alphabetize public API list

This change alphabetizes the public API.
todo
[samples] Make samples work properly

The samples dependencies were wrong, and have been wrong since the
number of invocations of each component Makefile has been reduced to
one (with the 'install' target).
[wrapper/engine] Update DESTDIR install

The DESTDIR install system was not properly installing each directory
listed as an API directory.  This change makes each directory get
installed (which currently uses symlinks).

This allows the 'source-api' to function again.
[samples/source-api] Update to have proper dependencies

This change makes the source-api sample have proper dependencies so
that it's Makefiles can be invoked with just the 'install' target.