Minor bug-fix with required libraries, and some cleaning up of the example.
Added public-lib rule.

A public-lib is a static-lib except that:

* It is placed into dist/lib instead of obj.

* All its public source files are copied into dist/include.

* Any includes/imports those public sources make must also be
  public sources of public-libs.

The point of this is to put all the files necessary for a binary
development distribution of your project into the dist directory.