(GEP-159) builder is confused by nested projects

This commit adds a FolderDiscriminator class capable of filtering
out URIs that contains certain segments in the path. The segments
are identified using an ant-like pattern (* = any string, ? =
any character). The filter defaults to the default exclusion
filter of the Forge with addtions for 'pkg' and 'spec'.

A preference based version of the FolderDiscriminator is also added
so that the user may specify custom exclusion patterns. The user
is presented with the default choices 'pkg' and 'spec' (which can
be removed), new filters can be added, and existing ones can be
edited.