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.
Sync of https://github.com/pantsbuild/pants/commit/7a6cdcf51c65ec0cdecdcb03fccea0c528a53d2e