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.
add restart/shutdown support for marionette
Bug 923606 - Add Marionette tests to cover startup/shutdown paths