`ShadowAsyncTask#executeOnExecutor` runs on the passed `Executor`.

Noticed that this didn't work when investigating #686. All this changes is that `AsyncTask#executeOnExecutor` will actually run the background task using the passed in `Executor` instead of calling through to the default `execute` implementation.