evdev: Offload device initialization to file thread

Initializing devices added to the system should be offloaded from the UI
thread. Let's inject a handle to the browser file thread from content and
run the device management code on that thread.

Device attach is split into two parts: the file thread part and the UI
thread part. All of the ioctls run on the file thread, and the device is
handed off to the UI thread at the last minute before we start reading
events. Input events are processed on the UI thread as usual.

EventFactoryEvdev gets a weak factory so it can invalidate
callbacks used on the file thread when it is destroyed.

BUG=340465
TEST=embedded content_shell on link

Review URL: https://codereview.chromium.org/148283014

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@250426 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 250426