Bug 940954 - Make it possible to re-use a runner when calling GeckoInstance.start()

When creating a new runner we always also create a new profile. We need to be
able to re-use profiles in order to support shutdown/restart tests.

Additionally, we need to be able to specify additional arguments when launching
Firefox (again), e.g. '-private-window' to make Firefox start with only a
single private window, as is prominently exposed on Windows.
Bug 940954 - Add GeckoInstance.wait() to enable us to block until the process has terminated

We can use this to wait until the process is gone or just kill it if it's still
alive after a given timeout.
Bug 940954 - Add ability to repeat tests to Marionette test runner

After executing a script we check the results for a 'repeat' flag. If it is set
we will start the same test again. To let tests run different routines when
being re-launched we pass an 'iteration' number to the script that is
executed. This will be available under this.__marionetteParams[0] in the test.
Bug 940954 - Implement restart/shutdown support

The Marionette server will listen for shutdowns (that includes restarts) and
will prepare the Marionette client appropriately. Whenever the server detects
a shutdown (or a kill is requested) the client receives a message and then
waits until the process has gone away and restarts it.
Bug 923606 - Add Marionette tests to cover startup/shutdown paths