[Android] Does not create recorder until required.

The code seems to assume that if the `recorder` field is set, then the
recorder has been activated and some cleanup code will be called in the
`destroy` method. This only creates the recorder object when the first
call to start recording arrives, and therefore only cleans it up if it
has been used.
Android: Execute tasks on view handler.

Calling all 'execute' tasks on the UI thread prevents conflicts between
those called from the webview's thread and those called from the main
thread.

Most notably, this prevents a crasher when the handler is destroyed
*during* an `onPrepared` call.