CRX FileSystem Pepper private API

pp::ExtCrxFileSystemPrivate is introduced in this change to allow plugin to mount (readonly) CRX extension directory as a filesystem.  Files can be access through pp::ExtCrxFileRefPrivate (which is a subclass of pp::FileRef) just like normal file, and the path would look like "/manifest.json".  See ppapi/example/crxfs for example.

Some keypoints in this change:

 * pepper resource/host architecture:
   - please refer to ppapi/proxy/ext_crx_file_system_private_resource.h.

 * webkit/fileapi related:
   - Changes run in browser
   - Isoloated filesystem is the underlying filesystem
   - Grant read permission to corresponding renderer of the plugin
   - See chrome/browser/renderer_host/pepper/pepper_ext_crx_file_system_browser_host.cc

 * extension related:
   - Changes run in browser
   - This is for getting extension installed directory to mount

TEST=out/Debug/chrome
  --register-pepper-plugins="out/Debug/lib/libppapi_example_crxfs.so#PPAPI Tests##1.2.3;application/x-ppapi-example-crxfs" \
  ppapi/examples/crxfs/crxfs.html

BUG=223301

Review URL: https://chromiumcodereview.appspot.com/14188019

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@198938 0039d316-1c4b-4281-b951-d872f2087c98
53 files changed