Dep refactor

It would be nice to have a more configurable (robust?) way to discover and configure extensions/dependencies.  Please regard this as a prototype (it is not py26 compliant, for starters), but close enough to start the discussion.

This does a couple things:
* creates a master `OrderedDict` of `SetupPackage` objects
* makes `SetupPackage` objects explicity declare their dependencies on construction
* refactors the `pkg_config` logic into its own class
* introduces a `FTConfig` class to use `freetype_config`

I've seen bugs where extensions can get inconsistent headers and libs because Freetype.check() and Freetype.add_flags() don't duplicate the needed `freetype_config` logic.  This is my attempt to make that class of bugs go away.

It may introduce another class of more obnoxious bugs, so please let me know your opinions.