Implementation of MessagePump for Mojo.

I've refactored a bunch of the common MessagePump code into
message_pump_test. This allows us to share tests for custom
messagePumps and should allow moving MessagePumpForUI out later
on. Sadly it results in a ginormous macro. On the positive side it's
easy to use.

BUG=none
TEST=none
R=darin@chromium.org

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

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