Install android_binary and android_resource target. Add example android app

Added pants.backend.codegen.targets.android_resources. Installed it into pants.
Added a BUILD file to src/android/example/res to make it a target  and added it to the source_root.
Updated any tests that required it.

Addresses (and hopefully fixes) issue opened last review. Testing Done section updated with this change.

Testing Done:
ci.sh success: http://pastebin.com/fWF7Uu7W

travis success: https://travis-ci.org/pantsbuild/pants/builds/28652096

Reviewed at https://rbcommons.com/s/twitter/r/591/
doc: upgrade our google analytics invocation, plagiarizing
https://developers.google.com/analytics/devguides/collection/upgrade/reference/gajs-analyticsjs

Testing Done:
published to subdir http://pantsbuild.github.io/larrys-world/
opened chrome dev tools JS console, entered ga('send', 'ihavenoideawhatimdoing')
in chrome dev tools network tab, saw I fetched a gif from google, part of whose url was ihavenoideawhatimdoing

Bugs closed: 235

Reviewed at https://rbcommons.com/s/twitter/r/574/
Refactor the engine to build the phase graph recursively via requesting
products: RoundEngine
Related issue: https://github.com/pantsbuild/pants/issues/247

Was driven by:
https://github.com/pantsbuild/pants/issues/152

The "idea" goal is special since it requires a compile of a sub-graph of
the overall Target graph followed by a gen on the entire graph.
Currently, there is no non-hacky way of specifying a specific section of
the Target graph to be passed to a specific task.

This refactor, aims to extract out the scheduling of Tasks and their
dependencies from register.py (where its been traditionally stored) and
be able to pass through a Target graph if/when required. No matter what
order goals are specified in the register.py, their order is overwritten
by the prepare()/product_type() pairing.

This change is for building the phase graph recursively via requesting
products in prepare(..) and advertising products via a Task classmethod
product_type().
Upgrade commons deps and use public releases.

This is in preparation for the 1st pypi release of
pantsbuild.pants.

Testing Done:
$ ./build-support/bin/ci.sh

Bugs closed: 304

Reviewed at https://rbcommons.com/s/twitter/r/616/
docs: update first_tutorial: output of ./pants goal help test

reviewed at https://rbcommons.com/s/twitter/r/413/

and further updated since now -h is a thing
Resolve phase should run before Resources.
Issue - https://github.com/pantsbuild/pants/issues/307

Modified resources phase to depend on the products of resolve to fix the order.
Removed resources deps from compile and added to other phases like repl.
Explicitly initialize the logger

Explicitly initialize the logging library.  See issue https://github.com/pantsbuild/pants/pull/305

Also added printing absolute path for BuildFile string to help clarify when the BUILD file in question is actually in the root.

Testing Done:
Added a typo in the root BUILD file.  Before the patch, an error message is printed when the name of the file should be output.  After the patch, the logging message is printed.

Bugs closed: 305

Reviewed at https://rbcommons.com/s/twitter/r/618/
Adding os.path.realpath to help macos build pass tests.

Testing Done:
pants goal test tests/python/pants::

I get 3 errors when I do this locally due to the fact that scala no longer works on my box.

Bugs closed: 312

Reviewed at https://rbcommons.com/s/twitter/r/624/
docstrings (and more) update post-target-refactor

target docs were obsolete and/or just plain wrong:
  claimed sources= param was a list of strings
  claimed targets= param was a list of targets

target method Page.register_wiki
was tagged (with @manual.builddict) for inclusion in
the BUILD dictionary; this is now a troll, you can't call
target methods in BUILD files.

Testing Done:
./build-support/bin/ci.sh

./build-support/bin/publish_docs.sh -o
searched BUILD dictionary for old phrases "list of targets", "(list of files)", "base.Target"; confirmed they're gone

Bugs closed: 138, 140

Reviewed at https://rbcommons.com/s/twitter/r/391/
Kill Context.state - its no longer used nor should it be used again.

Testing Done:
CI ran green: https://travis-ci.org/pantsbuild/pants/builds/28965745

Bugs closed: 313

Reviewed at https://rbcommons.com/s/twitter/r/625/
Fixup RoundEngine scheduling.

Do a recursive walk to construct and prepare Tasks as before
but then do a tsort after the full walk when all the dependency
edges are known.

This also takes a pass over all jvm Tasks to ensure proper deps
are requested in prepare and in the cases where the deps are
improper TODOs are added calling out whats needed.

Testing Done:
CI passes locally and travis is away here: https://travis-ci.org/pantsbuild/pants/builds/28997865

I did these sanity checks for jvm goals:
$ function sanity() { for goal in "$@"; do echo "$goal:" && PANTS_DEV=1 ./pants goal --explain $goal 2>/dev/null | head -3 | tail -1 && echo; done; }
$ sanity gen resolve compile test run repl doc jar binary bundle
gen:
bootstrap -> gen

resolve:
bootstrap -> gen -> check-exclusives -> resolve

compile:
bootstrap -> gen -> check-exclusives -> resolve -> compile

test:
bootstrap -> gen -> check-exclusives -> resolve -> compile -> resources -> test

run:
bootstrap -> gen -> check-exclusives -> resolve -> compile -> resources -> run

repl:
bootstrap -> gen -> check-exclusives -> resolve -> compile -> resources -> repl

doc:
bootstrap -> gen -> check-exclusives -> resolve -> compile -> doc

jar:
bootstrap -> gen -> check-exclusives -> resolve -> compile -> resources -> jar

binary:
bootstrap -> gen -> check-exclusives -> resolve -> compile -> resources -> binary

bundle:
bootstrap -> gen -> check-exclusives -> resolve -> compile -> resources -> bundle

Also checking the un-constrained cli handling - note clean-all killserver server order is maintained and compile is de-duped:
$ PANTS_DEV=1 ./pants goal --explain clean-all killserver server test depmap compile
*** Running pants in dev mode from /home/jsirois/dev-jsirois-pants/src/python/pants/bin/pants_exe.py ***
(using pantsrc expansion: pants goal --explain clean-all killserver server test depmap compile --server-open)
Phase Execution Order:

clean-all -> killserver -> server -> bootstrap -> gen -> check-exclusives -> resources -> resolve -> compile -> test -> depmap

Bugs closed: 314, 316

Reviewed at https://rbcommons.com/s/twitter/r/627/
Merge branch 'master' into tdesai/294