Fixes soap memory leak

Summary: Uses unordered_sets instead of vectors for SoapData collections m_sdls, m_typemaps, and m_encodings. This way when the same pointer is added to the collection multiple times, the collection doesn't unnecessarily consume memory.

Closes #2828
Closes https://github.com/facebook/hhvm/pull/4082

Reviewed By: @ptarjan

Differential Revision: D1643094

Signature: t1:1643094:1414526521:1de5fa33624adc69b0aa37b6c5e2f5c67b2d15cb
Load Offset->line number mappings on demand

Summary: We don't use all the line number we store, since it's only used for
backtraces, warnings, and the like.  To save space, pull the line table out of
the repo when needed, and then cache the specific (Offset,line#) pairs that
were needed

Reviewed By: @jdelong

Differential Revision: D1616637
Only initialze sweepables on new threads

Summary: Closes #3999
Closes https://github.com/facebook/hhvm/pull/4000

Reviewed By: @markw65

Differential Revision: D1621173

Signature: t1:1621173:1414527028:89442e970ddb2c067ff9855dfb275ec40a4c3450