Marks class members private and provides acessors.
Treats dependencies before flags.

This commit logically treats dependencies before it treats flags, both in code
ordering, and parameter ordering.  This commit also allows package groups to
have additional user-specified dependencies.
Fixes building packages with '+' in them.

This commit processes files in components in packages with '+' signs in them,
such that they included in the library and that they don't get test drivers
built.