Docker provider spins up a host VM if necessary

This adds the starting functionality for Docker to spin up a host VM if necessary. There are many rough edges at the moment but the basics all work, which is quite cool.