Decoupled prompting from the inner architecture.

Prompting was made inside the bower architecture components.

Now, whenever a prompt is required it's delegated to an external entity via the logger. The logger then calls the renderer `prompt()` method to render the prompt. At the moment only input, confirm and password types are implemented.

This fixes all usages of commands that require prompts with `--json`,
since no invalid json content is produced when prompting.
The standard renderer now uses `inquirer` and json renderer uses `promptly`.

- Fixes #645 
- Fixes bug with `bower uninstall <package> --json`
- Adds a final question to `bower init` with the generated json