Launch screen timeout on iOS now matches that on Android
--mobile-settings option for the `meteor build` command

Since we removed the --settings for build before, here is an alternative that
only puts it into application bundle (not used for build time settings).
Tweak comment and help text on --mobile-settings
Make sure that early refreshes are visible
Implement Npm.strip, for use in package.js.

Summary:
The `Npm.strip` method makes up for packages that have missing or
incomplete .npmignore files by telling the bundler to strip out certain
unnecessary files and/or directories during `meteor build`.

The `discards` parameter should be an object whose keys are NPM
package names and whose values are arrays of strings (or regular
expressions) that match paths in that package's directory that should be
stripped before installation. For example:

  Npm.strip({
    connect: [/*\.wmv$/],
    useragent: ["tests/"]
  });

This means (1) "remove any files with the `.wmv` extension from the
'connect' package directory" and (2) "remove the 'tests' directory from
the 'useragent' package directory."

The values can also be objects, in which case the keys of the nested
objects will match nested dependency names. For example,

  Npm.strip({
    connect: {
      multiparty: ["test/"]
    }
  });

will discard the "test" directory from the "multiparty" package that is
depended upon by the "connect" package.

If you need to discard files from both "connect" and "multiparty", here's
a little trick you can use:

  Npm.strip({
    connect: {
      connect: ["huge.wmv"],
      multiparty: ["test/"]
    }
  });

This makes intuitive sense because requiring the "connect" package from
the "connect" package always returns the package itself.

Test Plan:
Run `meteor rebuild <package>` for the packages whose package.js files I
modified, and verify that the `Npm.strip`ped paths are absent from the
generated bundle.

Reviewers: glasser, nim, emily

Differential Revision: https://phabricator.meteor.com/D865
Use Npm.strip to remove some extraneous large files from core packages.

So far I have only removed files from packages that are included by
default in newly `meteor create`d projects. We should probably make a pass
over all the core packages, too.
Remove stray console.log in meteor package
better help for get-machine
Exit the status poller cleanly, so we never block process exit
Rework string that is printed when you publish a binary package.
Change to --minutes in 'meteor admin get-machine' usage
Tweak help text for get-machine.
Add refresh cleanup to History.md, and another History tweak
an auspicious History tweak
Avoid triggering a sqlite3 bug

See https://github.com/mapbox/node-sqlite3/pull/355

Note that this bug actually prevented the bug fixed in 2fd65660d171a
from being harmful!
Fix error handling for offline support.

(untested. glasser told me what to type.)
Added two more missing 'new's I had missed
Optionally compress package data on the wire

For now, requires $METEOR_CATALOG_COMPRESS_RPCS to be set. On my home
network, this speeds up a clean refresh by 50%.
Implement a `meteor shell` command.

Summary:
Invoking `meteor shell` starts an interactive REPL for evaluating server-side code.

Shell commands are evaluated in the server process, so the shell's input and output have to be piped through a socket from/to the parent process that runs the `meteor shell` command. This separation accounts for most of the complexity of this diff, but the end result is pretty seamless: tab completion, history, ctlr-c and ctrl-d, etc. all work as expected.

Task: https://app.asana.com/0/15750483766338/16576093991355

Test Plan: Run `meteor run` in one terminal and `meteor shell` in another, evaluate some commands, and verify that the commands seem to be running the context of the server process. Also check tab completion and history, and ensure that the server is running simultaneously with the shell.

Reviewers: dgreenspan, avital, slava, emily, nim, sashko

CC: sashko

Differential Revision: https://phabricator.meteor.com/D837