Delete straggling submodule objects
prune dead code
PackageMap only has a local (not layered) catalog

No need to introduce the LayeredCatalog anywhere it's not needed.

Simplify some more things about LayeredCatalog:

- remove unused containingCatalog link from localCatalog to
  layeredCatalog

- because of that, simplify LayeredCatalog initialization to occur after
  localCatalog (no more circular references required)

- drop some other dead LayeredCatalog methods
fix deadlock in mongod startup failure

AppRunner.stop needs to be able to cause any Future which the AppRunner
is waiting on to return, so that it can get back to the top level of its
loop and return. (This is because for some reason it is important that
AppRunner.stop does not return until the app is guaranteed to be
stopped.)  This had not been the place for the injected "wait for mongo
to start up before running the AppProcess" future.

This also means we can't use f.future() any more, because that code
assumes that it is the only code allowed to resolve its future (it
unconditionally resolves the future when the wrapped function returns,
which is an error if it is already resolved).

This is tested by 'run errors' which was failing.  Also, the test should
only expect 2 unexpected exit code messages, not 3, since we don't print
the message the first time which didn't have a kill before it.
Show mongod exit message if it started up OK

Fixes "run with mongo crash" test
Update packages to use Package.registerBuildPlugin
Update calls to addFiles, onUse, and onTest
Allow prerelease parts with digits and nondigits

Previously the constraint solver crashed on such things.

Fixes #3147.
All downloads use downloadPackagesMissingFromMap

We now can make PackageMaps without a localCatalog, for cases like this
where we really want everything in the map to be downloaded.
bump package versions for a test release
improve downloader UX

When only downloading 1 package, say which one in the progress bar. When
downloading several, say how many.
Refresh catalog only on relevant errors

Fixes #2846.  Fixes #2847. Fixes #2979.

Errors in the build process that could be fixed by refreshing the
catalog now cause the catalog to refresh, assuming we have not already
refreshed it recently and that we are not offline.

These commands now don't need to refresh at startup: remove, run, debug,
create, build, bundle, deploy, test-packages, rebuild, and self-test

It should be OK for create to throw SpringboardToLatestRelease even
without refreshing, since release.latestKnown is still something we know
about.
Merge with Meteor devel
Merge branch 'meteor-devel' into devel