Fixed a bug in static library creation.

Static library headers are now added as dependencies but not
as inputs. This solves the problems of:
* Headers being put into .a files along with the .o files.
* The headers being deleted if there is a failure to build
  the .a file.
Reworked dependency implications of includes.

Major rework of how includes are handled to make them
more correct. In summary:

Static libraries no longer depend on each other.

Includes are now grocked AFTER all down-stream includes have been
discovered.

Direct and transitive includes now add dependencies to everything
that depends on the includer.

Binary.includeAdded() now just remembers when libraries are needed,
leaving adding of dependencies till augmentAction().

Note that this hasn't been adequately tested as yet. The next move is
to increase the size of the example to improve test coverage.