Clean up thread handling in Blimp browser tests.

* Make BlobChannelService IO-thread clean and add ThreadChecker to
  enforce it.
* Add thread-hopping to cache state pulling logic.
* Replace RunLoops with test utility functions.
* Add helper function "RunUntilCompletion()" which relieves test code
  of the need to explicitly schedule RunLoops on threads.
* Misc. cleanup (e.g. moving some fields from unique_ptrs to regular fields, renaming methods, etc.)

R=wez@chromium.org,lethalantidote@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2256363003
Cr-Commit-Position: refs/heads/master@{#413523}
11 files changed