This makes the flutter and dart scripts invoke their batch file equivalents if running under MINGW (i.e. git-bash) on Windows.
This allows for proper locking, and makes sure that people aren't using two different (and non-mutally-aware) locking systems when running flutter on Windows.
I also fixed a couple of places where we look for MINGW32, which fails under MINGW64. It just looks for MINGW now.
This reverts the flutter command to use shlock when flock isn't available. It seems that the mkdir method isn't as reliable as we want. I think that this is because the trap isn't always be executed, which is why I think that shlock uses PIDs to help it be more reliable. Unfortunately, that means that we're back to not working over network shares (which is where things were before I moved to the mkdir method, so not really a regression). I did leave in the mkdir method for platforms that have neither flock nor shlock (which should be very few and far between, but still), so at least we'll do some locking there now.