Add support for running recorder in headless mode.

Fix for https://github.com/gatling/gatling/issues/1993

This suppresses the Swing UI for Gatling recorder if `-H` or
`--headless` are passed as commandline parameters.  It also creates a
'lock file' which allows external processes to:

1. know when recording has started
2. check the Process ID of the gatling recorder

This definitely leaves room for improvement:

* `HeadlessFrontEnd` might be better named as `CommandLineFrontEnd`
* method for fetching PID is possibly not cross-platform
* PID-fetching via JMX may contravene JVM security policy (seems
  unlikely to matter to anyone though)
* no HAR support (I don't know what this is)
* logging is done in a very simple way, and probably not in keeping with
  other parts of the code

Work done pairing with @guykoth.
The idea was to pass additional arguments arguments to newFrontend, which would then return the proper frontend, instead of vars, null... in brief, mutability everywhere.