Update --dry-run, add --skip-npm and --skip-bower

Previously --dry-run meant a couple different things.

In the `init` command it meant “don’t run npm install or bower install”.
In the `generate` command it meant “don’t overwrite any existing files”.

This patch changes the behaviour of the flag in both places.

--dry-run now only ever means “don’t write *any* files”

Two new flags are introduced for `new` and `init`:

--skip-npm
--skip-bower

Their behaviour is hopefully self-explanatory.

Addresses #1199