Ask for input for variables and provider configs

This PR adds support for Terraform automatically asking for user input for required variables and blank provider configs. You can see an example below:

![Gif](http://g.recordit.co/QAdNAuUkme.gif)

The logic works as follows:

  * Input can be disabled with `-input=false` flag.
  * Input will not be asked if a variable file or flag is present.
  * Input will not be asked if a provider config has been set

Input is still asked for (but errors) if there is no TTY available. We'll fix that in an upcoming PR.