Fix the build system.

- The package cache is now used properly
- It's amazing it worked as often as it did.

The root problem was bad logic in the routines that mounted up
the cache directories.  Due to unwanted fallthrough in the logic
the cache directories would get mounted, then the local package
directories would get mounted over the global cache directories.

Along the way, cleaned up the add_pkg function.  Since this function
only adds packages and never builds ports there is no reason to
mount up the distfile cache directory.

Also along the way, cleaned up the usage of NANO_ENV versus
NANO_WORLDDIR.  Their usage has gotten somewhat confusing over time.
We should at some point document what they are for and how they should
be used, as well as audit the build to ensure they are being used
properly.
Merge branch 'releng/9.1.0' of github.com:freenas/freenas into releng/9.1.0