new "sitegen" goal in internal backend

Defines a new "sitegen" goal. It's the start of a static site generator for Pants docs.

We don't want to ship this goal to all Pants users.
We do want to use it in the Pants repo.
So set up a new dir src/python/internal_backend/
It doesn't get pex'd up with src/python/pants code.
But can be pulled in by adding backends to pants.ini
(e.g., build-support/bin/publish_docs_new.sh creates pants.ini.sitegen by appending a backends to pants.ini)

So far this goal looks for a site description config'd in a json file,
and based on that copies some .html files
(fixing up links between them to be OK in spite of relative-path changes)
and wraps them in a potentially-pretty .html template and stylesheet.
That ain't everything it should do; but it's enough to get an idea of code structure.

To invoke this code,
./build-support/bin/publish_docs_new.sh

Testing Done:
added tests/python/internal_backend_test:: to ci.sh.
https://travis-ci.org/pantsbuild/pants/builds/35997435

Reviewed at https://rbcommons.com/s/twitter/r/1030/
Sync of https://github.com/pantsbuild/pants/commit/0e3db04c45888b68689fb2fcbd1a4c3c658ef384