Coming from Drupal 7, which files should I be versioning with git in Drupal 8 projects?
Drupal comes with an example .gitignore file, just rename "example.gitignore" to .gitignore and you have a pretty good starting point. It also comes with a lot of explanations.

Many of your questions go way beyond just answering that should be added to get, there are also some different opinions.


Yes, put your modules in /modules and so on, it's a lot easier to work with.
Whether or not to commit /vendor depends on your deployment process. if you deploy your git repository directly and have no intermediate deployment process, you probably still want to commit the vendor directory. There are various alternatives, starting from just building an archive yourself and deployment that, to automating that with scripts/build tools to using solutions like platform.sh that run composer install automatically for you. If you use any of those, you likely want to ignore vendor as the example .gitignore file does by default.
It's also common practice to have a settings.local.php and add settings.php to git, see instructions in settings.php at the end.
I don't understand your repo.git and repo folder examples. It's not more complex than in Drupal 7, just different folders.
Yes, you probably want to move your config folder out of files (you need to update the path in settings.php) and commit it. You shouldn't only have one environment, and config allows you to make changes on one site, export it and import it on production. There are many questions here and documentations about this available.