Some small fixes to the new options implementation.

These all relate to options whose action is 'append', and address rare corner cases.

1. Switch some invocations of copy() to deepcopy(), to ensure e.g., that
   default values of list type are not shared between the
   parser we use to generate help and the parser we use to actually
   parse args.

2. Distinguish between an empty list value in config, and no value at all.
   This ensures that "no value" doesn't trump a hard-coded default because
   we mistake it for an explicit config value.

3. Don't special-case appends to RankedValue. Instead make copy()
   return the underlying value.  argparse is the only thing that calls copy()
   on a RankedValue, and this will ensure that argparse always works with
   raw values, both in the list case and (as before) in the single value case.

4. Nits: Remove an unused import, break up an overlong line.

Testing Done:
Various manual tests of corner cases that could trigger these issues. CI running.

Reviewed at https://rbcommons.com/s/twitter/r/1236/
Migrate the filter task to new-style options.

Testing Done:
Ran all of filter's unittests. CI pending.

Reviewed at https://rbcommons.com/s/twitter/r/1232/
Add the environment's PYTHONPATH to sys.path when running dev pants.

This is helpful when running a graphical debugger: you need to ensure that
the debugger's code (pydevd in my case) is on your path so you can import
it at the tracepoint.

Reviewed at https://rbcommons.com/s/twitter/r/1237/
Migrate checkstyle and scalastyle to new-style options.

Testing Done:
CI passed.

Reviewed at https://rbcommons.com/s/twitter/r/1231/
Fix a test snafu.
Migrate python tasks to new-style options.

Testing Done:
CI passed.

Manually verified that flags work as expected, especially the global --interpreter flag, as used by these tasks.

Reviewed at https://rbcommons.com/s/twitter/r/1244/
Temporarily change stderr log level to silence log.init if --quiet

Otherwise, if disk logging is configured, it prints 'logging to /path/to/something' even when in quiet mode (https://github.com/twitter/commons/blob/master/src/python/twitter/common/log/initialize.py#L285)

Testing Done:
https://github.com/pantsbuild/pants/pull/743

https://travis-ci.org/pantsbuild/pants/builds/39412239

Reviewed at https://rbcommons.com/s/twitter/r/1243/
Add notes about JDK versions supported.

Bugs closed: https://github.com/pantsbuild/pants/issues/739

Reviewed at https://rbcommons.com/s/twitter/r/1241/
Migrate ivy_resolve options to new options system

Testing Done:
inspected output of pants goal resolve.ivy examples/src/java:: --help
ran several invocations by hand.

Bugs closed: 738

Reviewed at https://rbcommons.com/s/twitter/r/1234/
Fix the issue of seeing "Error while writing to artifact cache: an integer is required" during [cache check]

Apparently the order of args was swapped by mistake. Fixed the issue by using named param calling style and updated the arg validation which would fail tests if similar problem occurs.

Testing Done:
https://travis-ci.org/jinfeng/jinfeng-pants-fork/builds/39441973 has passed.

local tests:

PANTS_DEV=1 ./pants goal test ./tests/python/pants_test/cache/

Reviewed at https://rbcommons.com/s/twitter/r/1249/
Add simple wire example
Add java_wire_library task and target.
Define wire-compiler and wire-runtime.
Extracted out protobuf parsing logic from ProtobufGen.
Extract out checking for duplicate/conflicting proto files.

This logic is used by both protobuf_gen and wire_gen. Put this logic
into a module function in protobuf_gen so that it can be re-used.
Move WireGen and ProtobufParse into
tests/python/pants_test/backend/codegen/tasks dir.
Address ericzundel's feedback in pr
Add more options to java_wire_library.
raise error if wire compiler fails
Add examples/src/wire to source BUILD file