Preliminary fix for MCA #181

Add locking around set to prevent concurrent writes
Complete fix for MCA #181

Add locking around remove/clear to prevent concurrent writes across set/remove/clear calls
Add missing change to fix compile error
Add test for MCA #181 for concurrent set calls
Fix #296, prepare was running plugin add each time

The problem was due to case mismatch. In cordova plugin ls a plugin shows as
org.chromium.polyfill.CustomEvent (note the capital C and E)
while in list of default plugins in cca it's listed as
org.chromium.polyfill.customevent.

Cordova plugin registry wants all ID's to be lower case. But allows upper case
letter in config.xml.
Fix #307 - use chrome plugins from local cca checkout if available

Add cca/chrome-cordova/plugins to search path for plugin installation. This
dir only exists in full checkout but not in npm install of cca.
Merge branch 'master' into MCAIssue181
Acquire lock around reads to chrome.storage as well
Adding docs on benchmarking cca exec bridge
Add a link to article about resizing icons
Don't add local chrome plugins dir if it doesn't exit

If plugin search path contains a non existing directory, cordova lib fails.
This was fixed for the current master version of cordova-lib but is still a
problem in the latest published version.
Change all plugin IDs to lower case

And bump versions in order to publish.
Some related discussion in #310