Mojo: Refactor PlatformChannel stuff.

- Remove PlatformServerChannel/PlatformClientChannel.
- Add PlatformChannelPair (move stuff formerly in PlatformServerChannel
  into this).

It became apparent that my previous plan to make this work on Windows
wasn't work nicely. On the one hand, on Vista+, we can basically make
things work like POSIX (created the channels in the parent and connect
them, and send a channel to a child). On the other, on XP, to be secure
you need to do more work (the channels aren't connected or authenticated
initially), so you'd need much more machinery (to wait for connection,
to authenticate, etc.).

So I'll go for a different mechanism to make things work on XP. The
assumption from the Mojo embedder API will be that it's given a channel
handle that's already been connected, authenticated, etc. (which will be
taken care of by other means). This will add flexibility in other ways
as well (e.g., make Mojo IPC more happily coexist with Chrome IPC -- you
should be able to pass a handle over Chrome IPC to set up Mojo IPC).

Still to do: Move PlatformChannelPair into its own files.

R=darin@chromium.org

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244223 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 244223
Pass gfx::Rect and gfx::RectF by const ref.

Avoid unneccessary copy of structures gfx::Rect & gfx::RectF 
by passing them by const ref rather than value. 

Any struct of size > 4 bytes should be passed by const ref. 
Passing by ref for these structs is faster than passing 
by value, especially when invoking function has multiple parameters. 

Pass by value creates unneccessary overhead which should be avoided.

BUG=159273

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244224 0039d316-1c4b-4281-b951-d872f2087c98
Add unit test for lock and unlock virtual keyboard feature


BUG=326170

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

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

Note: This reverts the changes to .h and .c files done in http://crrev.com/95873002. However, this should still work for non-NEON builds as NEON specific functions are built as empty functions in that case.

BUG=331619

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

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