Get rid of code in scm/__init__.py.

Having code in __init__.py is bad practice in pants-world, due to possible
dependency issues: __init__.py is always executed when any code in a package
is loaded, even if that code has no visible import dependency on __init__.py,
and therefore no BUILD file dependency on it.
Get rid of code in distribution/__init__.py.
Remove last non-empty __init__.py file.

We no longer have namespace issues with tests/python/pants_test.
Restore namespace package to src/python/pants/__init__.py.

It turns out to be needed after all.

This reverts the salient part of commit 583eed04142a0aaa9afd525c178b834373f5ef22.
Release 0.0.20 with updated twitter.common.python dep.

This also adds a CHANGELOG.rst and incorporates it in
releases via the setup.py long_description field. Release
docs are updated to point out this file needs to be edited
along with the version.py when prepping a release.

Testing Done:
1) verify the long_description addition is going to work:
==
$ PANTS_DEV=1 ./pants setup_py src/python/pants:pants-packaged
*** Running pants in dev mode from /home/jsirois/dev/3rdparty/jsirois-pants/src/python/pants/bin/pants_exe.py ***
WARNING!  /home/jsirois/dev/3rdparty/jsirois-pants/dist/pantsbuild.pants.YHc2bE/src/pants/docs/conf.py is source but does not belong to a package!
WARNING!  /home/jsirois/dev/3rdparty/jsirois-pants/dist/pantsbuild.pants.YHc2bE/src/pants/docs/pagerank.py is source but does not belong to a package!
Running packager against /home/jsirois/dev/3rdparty/jsirois-pants/dist/pantsbuild.pants-0.0.20
Writing /home/jsirois/dev/3rdparty/jsirois-pants/dist/pantsbuild.pants-0.0.20.tar.gz
$ cd dist/ && tar -xzf pantsbuild.pants-0.0.20.tar.gz && cd pantsbuild.pants-0.0.20

# The concat of ABOUT.rst and CHANGELOG.rst is effective:
$ python setup.py --long-description
Pants is an Apache2 licensed build tool written in Python.

The latest documentation can be found `here <http://pantsbuild.github.io/>`_.

RELEASE HISTORY
===============

0.0.20 (7/25/2014)
------------------

API Changes
~~~~~~~~~~~

* Hide stack traces by default
  `Issue #326 <https://github.com/pantsbuild/pants/issues/326>`_
  `RB #655 <https://rbcommons.com/s/twitter/r/655/>`_
...

2) burn the new release docs: http://pantsbuild.github.io/jsirois/release.html

Bugs closed: 396

Reviewed at https://rbcommons.com/s/twitter/r/754/
Add a check to verify that all* __init.py__ files are empty.

*With one exception!

Reviewed at https://rbcommons.com/s/twitter/r/757/
Include java_sources in targets.
the final target set returned by context.targets() was not considering targets that weren't specified in the "dependencies" of thescala_library. In this case, a target was specified using "scala_library:java_sources" which was being dropped. This in turn was causing idea not to load the project with the java sources it should have had.

Modified ScalaLibrary to return its own implementation of closure()
which includes java_sources.

Testing Done:
1) $./pants goal idea src/scala/com/pants/testproject/javasources::
2) https://travis-ci.org/pantsbuild/pants/builds/30893765

Bugs closed: 390

Reviewed at https://rbcommons.com/s/twitter/r/733/
Fixup broken release script - avoid escaping issues and just duplicate the setup_py call for now.

Testing Done:
Used this to release https://pypi.python.org/pypi/pantsbuild.pants/0.0.20

Bugs closed: 398

Reviewed at https://rbcommons.com/s/twitter/r/761/
Merge branch 'master' of https://github.com/pantsbuild/pants
Fixup NailgunTasks with missing config_section overrides.

Update version and CHANGELOG in prep for a release for twitter/commons consumption.

Testing Done:
Travis CI went green here: https://travis-ci.org/pantsbuild/pants/builds/30896650

Bugs closed: 399

Reviewed at https://rbcommons.com/s/twitter/r/762/
Plumb ivysettings.xml location to the publish template.

Testing Done:
1.) tests including publish integration
==
$ PANTS_DEV=1 ./pants goal test tests/python/pants_test/::

2.) local publish
==
$ yes | PANTS_DEV=1 ./pants goal publish src/{java,scala}:: --no-publish-dryrun --publish-local=/tmp/repo --doc-javadoc-ignore-failure --doc-scaladoc-ignore-failure

Bugs closed: 400

Reviewed at https://rbcommons.com/s/twitter/r/764/
Fix a scope bug for java agent manifest writing.

Also fix a JavaAgent validation bug revelead by adding a test for
JarBuilder agent handling.

Testing Done:
$ PANTS_DEV=1 ./pants goal test tests/python/pants_test/tasks/:jar_task --test-pytest-options=-v
...
18:05:24 00:01   [test]
18:05:24 00:01     [pytest]
18:05:24 00:01       [run]
                     ============== test session starts ===============
                     platform linux2 -- Python 2.6.9 -- py-1.4.22 -- pytest-2.5.2 -- /usr/bin/python2.6
                     plugins: cov, timeout
                     collected 6 items

                     tests/python/pants_test/tasks/test_jar_task.py:111: JarTaskTest.test_custom_manifest PASSED
                     tests/python/pants_test/tasks/test_jar_task.py:86: JarTaskTest.test_overwrite_write PASSED
                     tests/python/pants_test/tasks/test_jar_task.py:102: JarTaskTest.test_overwrite_writestr PASSED
                     tests/python/pants_test/tasks/test_jar_task.py:57: JarTaskTest.test_update_write PASSED
                     tests/python/pants_test/tasks/test_jar_task.py:73: JarTaskTest.test_update_writestr PASSED
                     tests/python/pants_test/tasks/test_jar_task.py:133: JarBuilderTest.test_agent_manifest PASSED

                     ============ 6 passed in 1.27 seconds ============

18:05:26 00:03     [junit]
18:05:26 00:03     [specs]
               SUCCESS

Bugs closed: 401

Reviewed at https://rbcommons.com/s/twitter/r/768/
Upgrade requests, flip to a ranged requirement to help plugins.

Changelog here: https://pypi.python.org/pypi/requests
I grepped for DecodeError which we do not trap and the rest of the API Changes are additive for our use cases.

Testing Done:
The requests library is used by src/python/pants/cache/restful_artifact_cache.py and src/python/pants/net/http/fetcher.py, this validates the fetcher.py use:
==
$ rm -rf ~/.pants.d/tools
$ PANTS_DEV=1 ./pants goal resolve 3rdparty/:guava
...
21:28:52 00:00   [resolve]
21:28:52 00:00     [ivy] INFO]
Downloading http://repo1.maven.org/maven2/org/apache/ivy/ivy/2.3.0/ivy-2.3.0.jar
 INFO] Starting new HTTP connection (1): repo1.maven.org
100% .................................................. 1193 KB 10.480s
 INFO] sha1: c5ebf1c253ad4959a29f4acfe696ee48cdd9f473

21:29:02 00:10       [ivy-bootstrap]
21:29:03 00:11       [ivy-resolve]
21:29:03 00:11         [ivy]
               SUCCESS

Bugs closed: 404

Reviewed at https://rbcommons.com/s/twitter/r/771/
Add a unit test for JavaAgent preconditions and attribute wiring.

Testing Done:
Failed after test add, fixed after JavaAgent fix:
==
$ PANTS_DEV=1 ./pants goal test tests/python/pants_test/targets --test-pytest-options="-v -kJavaAgentTest"
...
20:42:36 00:00   [test]
20:42:36 00:00     [pytest]
20:42:36 00:00       [run]
                     ============== test session starts ===============
                     platform linux2 -- Python 2.6.9 -- py-1.4.22 -- pytest-2.6.0 -- /usr/bin/python2.6
                     plugins: cov, timeout
                     collected 40 items

                     tests/python/pants_test/targets/test_java_agent.py@55::JavaAgentTest::test_can_redefine PASSED
                     tests/python/pants_test/targets/test_java_agent.py@66::JavaAgentTest::test_can_retransform PASSED
                     tests/python/pants_test/targets/test_java_agent.py@77::JavaAgentTest::test_can_set_native_method_prefix PASSED
                     tests/python/pants_test/targets/test_java_agent.py@39::JavaAgentTest::test_defaults PASSED
                     tests/python/pants_test/targets/test_java_agent.py@35::JavaAgentTest::test_minimal PASSED
                     tests/python/pants_test/targets/test_java_agent.py@31::JavaAgentTest::test_required PASSED

                     ==== 34 tests deselected by '-kJavaAgentTest' ====
                     ==== 6 passed, 34 deselected in 0.38 seconds =====

20:42:38 00:02     [junit]
20:42:38 00:02     [specs]
               SUCCESS

Bugs closed: 403

Reviewed at https://rbcommons.com/s/twitter/r/770/
Kill un-implemented register.py entry-points.

Testing Done:
Travis CI went green here: https://travis-ci.org/pantsbuild/pants/builds/31002194

Bugs closed: 402

Reviewed at https://rbcommons.com/s/twitter/r/769/
Force parsing for filtering specs

get_target fails if the target has not been parsed as part of the context, or manually added. Need to force parsing for filtering specs, since they will likely not be included in the graph otherwise.

Testing Done:
Passes existing/new tests, and resolves the issue internally.

Reviewed at https://rbcommons.com/s/twitter/r/775/
Fixup a hole in external dependency listing wrt encoding.

Refer to https://rbcommons.com/s/twitter/r/615/
This fixes a hole left there encountered at Twitter against ... shapeless.
It also adds an integration test that is now fixed with this fix.

Testing Done:
Locally:
$ PANTS_DEV=1 ./pants goal test tests/python/pants_test:all
$ PANTS_DEV=1 ./pants goal test tests/python/pants_test/tasks:jvm_bundle_integration

Travis CI went green: https://travis-ci.org/pantsbuild/pants/builds/31093736

Bugs closed: 406

Reviewed at https://rbcommons.com/s/twitter/r/776/
Added benchmark target to maven_layout()

Testing done:
https://travis-ci.org/pantsbuild/pants/builds/31105013

Reviewed at:
https://rbcommons.com/s/twitter/r/780
Fix exit status

Testing Done:
Ran a failing pants bootstrap; checked $?

Reviewed at https://rbcommons.com/s/twitter/r/779/
OSX 10.10

Some users have begun beta testing OSX 10.10 internally.

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