Cleanup in Translator

Summary: I did this while moving inlining into translateRegion().  No change in
functionality; just documentation, reorganization, eliminating dead
functions, etc.

The inlining change requires splitting up translateRegion() a bit, so I
haven't touched translator.cpp.  I also didn't touch translator.h below
the definition of Translator, but I'll probably deal with that later.

Reviewed By: @swtaarrs

Differential Revision: D1427960
bug fix in naming declaration

Summary: During a name collision (on a global symbol, like a class), the name of the
symbol should be bound to the first version of the definition (the one that was
previously there), not the new one (the one that created the collision).
Otherwise it will break the incremental mode.
The incremental logic does the following:
1) remove everything we knew about the declaration
2) redeclare

If after a collision we bind a class name to the new class it will remove
the declaration of the new class (the wrong one) and break.
This bug was likely introduced by the series of diff updating the type-checker
to not stop at the first error.
We use to throw on a naming error and because of that the naming environment was naturally bound
to the first version of the definition.

Reviewed By: @jwatzman

Differential Revision: D1428722
Add basic support for Toran proxy

Summary: Experimenting. We're not using this yet. Removes the dependency on packagist.org. Removes github dependency for stuff installed via packagist, but not for explicit dependencies in the JSON.

Reviewed By: @ptarjan

Differential Revision: D1425023