Make the emulation stop asynchronous to prevent deadlocks.

This may expose bugs which relied on the Main Thread to be suspended in the stopping state.
Frame: OnClose now handles asynchronous behaviour of DoStop().
Core: Return CORE_STOPPING even if hardware is already uninitialized.
FrameTools: Update GUI and disable Play button when in stopping state.
Check whether the core is running instead of checking if it is unitialized.

This properly handles the stopping state and more accurately represents the intended check.
Movie: Do not attempt to record input when the emulation has not started yet.

Fixes a null pointer exception when the user starts the recording during a state transition.
Merge pull request #515 from Armada651/threading

Make the emulation stop asynchronous to prevent deadlocks.