Use a CopyOnWriteHashSet to avoid CME.

Switch from a synchronized HashSet to a CopyOnWriteHashSet to avoid
ConcurrentModificationException when processing watchers.

This avoids exceptions like the following:

ERROR org.apache.zookeeper.ClientCnxn: Error while calling watcher
! java.util.ConcurrentModificationException: null
! at java.util.HashMap$HashIterator.nextEntry(Unknown Source)
! at java.util.HashMap$KeyIterator.next(Unknown Source)
! at com.twitter.common.zookeeper.ZooKeeperClient$2.process(
ZooKeeperClient.java:318)
! at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(
ClientCnxn.java:526)
Rename jvmargs -> jvm_options.
Get rid of all uses of opts= param in java running.
Get rid of the opts= argument in java runners.
Rename BootstrapUtils to something more dignified.

It's a proper class that models some entity, "utils" is not
a good name for it.

Also renamed its methods to be a bit shorter and more readable.

This is all because my upcoming refactoring of {java|scala}_compile.py
will be interacting quite significantly with this class, and
I want the names to make more sense.

Patrick: I was going to ask you about this first, but you
were in transit all day, afaict. Feel free to push back
if you're opposed to this change.

Auditors: pl
Rename a file to match the new name of the class it defines.
Merge pull request #191 from pkwarren/avoid_concurrent_modification_ex

Use a CopyOnWriteHashSet to avoid CME.
Add convenience tool bootstrapping methods to Task.

Auditors: pl
Expose the lazy mode of tool bootstrapping.

Allows client code to further defer when the bootstrapping occurs.

Auditors: pl
Fix lazy tool classpath convenience method.

What was I thinking?

Auditors: pl
Update pants user and developer-oriented scripts.

- Update "pants" user-oriented script to fetch pre-build pants pex files.
- Add "pants.bootstrap" developer-oriented script to run from sources
  and build pex files.
- Remove "pants.multi" as its no longer used.