Never prune seed packages from build
Never prune seed packages from build

This is a fix for split images.

During dependency resolution, newt executes a phase called "imposter
pruning."  A package is an imposter if it is in the dependency graph by
virtue of its own syscfg defines and overrides.  For example, say we
have a package `foo`:

```
    pkg.name: foo
    syscfg.defs:
        FOO_SETTING:
            value: 1
```

Then we have a BSP package:

```
    pkg.name: my_bsp
    pkg.deps.FOO_SETTING:
        - foo
```

If this is the only dependency on `foo`, then `foo` is an imposter.  It
should be removed from the graph, and its syscfg defines and overrides
should be deleted.

This commit changes this procedure slightly.  Now, only
*non-seed-packages* are subject to imposter pruning.  This change is
necessary due to the way newt builds split images.  A split image
consits of two parts: 1) loader, and 2) application.  The loader is
self-contained, whereas the application is allowed to depend on packages
in the loader.  When newt builds the application, it considers all the
packages in the loader to be seed packages for the application.  Since
all these packages are guaranteed to be present (they are already built
in to the loader), they must not be pruned.

The fix is to never prune seed packages.  While this fix specifically
addresses split images, conceptually it makes sense to never prune seed
packages for non-split builds as well.  If the `project.yml` file points
to a package, that package should be included, even if newt thinks it is
not needed.

apache/incubator-mynewt-newt,apache/incubator-mynewt-newt