Make the compiler PackageDB stuff more flexible
We support using multiple package dbs, however the method for specifying them is very limited. We specify a single package db and that implicitly specifies any other needed dbs. For example the user or a specific db require the global db too. We now represent that stack explicitly. The user interface still uses the single value method and we convert internally.