Estimation (code review)

Not quite ready for merge into master because the change is x86-specific. The sim.exe used for estimation needs to be recompiled (and the supporting logic or installers adjusted) for the other supported platforms.

I'll comment more later, when I have more time, but the highlights are:

* GRBL simulator estimation of job runtime. (VERY accurate in testing)
* Preprocessing done once (estimation changes would have doubled it had it not been changed).
* Comments left if preprocessed commands, and latest comment notifications pushed to queuing/command complete time. So, latest comment will now show the comment most relevant to the command currently being executed by the controller (not just the last comment queued).
* Estimation runs on a thread, and updates the UI (data + button state) upon completion.
* Estimation deferred if controller connection is not open. (Controller settings are applied to the simulator, so no-connection = no simulation).
* Command state table alignment fixed/happens to work. Take your pick of how that was resolved...