Make our build configs more portable by using the default src config

If a `src` config is not provided, by default, all of the library sources are included.  There is some special handling in the build task to make sure all library sources are included regardless of the path to the build config.  When someone includes a `src` config, path patterns are assumed to be relative to the current working directory (unless overriden with the `cwd` config).  So, when you use the `src` config, your config is no longer portable.
Merge pull request #2377 from tschaub/portable-config

Make our build configs more portable by using the default src config.
Give precedence to feature style
Distinct style function types