s/new_options/options/g

There are no 'old options' any more.

Testing Done:
unit and integration tests pass locally. Full CI baking.

Reviewed at https://rbcommons.com/s/twitter/r/1527/
LazySourceMapper and tests

A LazySourceMapper attempts to find targets which own sources without
loading any more than is needed and caches its results.

This is intended for use in tasks like what-changed or (in the future)
goals which discover target to act on (eg 'compile-changed') or other
uses cases which want to map a source file to a target as cheaply as possible.

Integration into what-changed will be a follow-up if/when this lands.

Testing Done:
./pants goal test tests/python/pants_test/base:lazy_source_mapper
https://travis-ci.org/pantsbuild/pants/builds/44622933

Bugs closed: 882

Reviewed at https://rbcommons.com/s/twitter/r/1526/
allow adding to pythonpath via pant.ini

Looks like this used to work, based on a comment (recently removed) that said:
```
"""
  To add additional paths to sys.path, add a block to the config similar to the following:
  roots: ['src/python/pants_internal/test/',]
"""
```
The provides an alternative to `PYTOHNPATH=custom/pants/stuff ./pants goal ...` when using
an in-repo custom register.py.

Note that this is unrelated to plugins distributed as dists and installed in the (virtual)env
from which pants is run / loaded with pkg_resources, or source backends packaged into a custom
dist or pex of pants.

This change restores that functionality, though it is now called `python-path` for clarity and
lives in the `[backends]` config section.

Bugs closed: 856

Reviewed at https://rbcommons.com/s/twitter/r/1457/