I am trying to create a VM for SharePoint 2016. Can I have both SQL and SharePoint installed on the same machine?
Yes its possible to have a single server SharePoint 2016 development Farm.
The machine needs to have atleast 16 GB RAM available. The processor should be 64 bit and 4 cores. Also there needs to be 80 GB space available for system drive and 100 GB for second drive.
Step by step guide - Single server 2016 installation & configuration
Yes, in a development environment it's quite common.
But in acceptance test and production environment it's not recommended.
Yes, you can. But this is not recommended on production environment.
Yes, but it can be very hard to setup all the prerequisites correctly.
I would strongly recommend you read Sahil Malik's book SharePoint 2013 Development Machine. Although the book is a version behind, I believe you will find his advice on using an SSD, setting up Active Directory, configuring SQL for SharePoint, disabling the loopback check, setting up networking, etc. to be very helpful.