folly::Singleton, a class for managing singletons

Summary: Singletons are surprisingly tricky in a codebase where
libraries depend on one another.  folly::Singleton hopes to make this
process more reliable by ensuring object creation happens in a safe
order, that destruction is possible, and that singletons are created
on-demand.

The basic fbcode use intention is to invoke registration completion in
initFacebook, so users need only declare singletons via
Singleton<ClassName> in their .cpp files.

This diff converts a couple of singletons to this model.

Reviewed By: @fugalh

Differential Revision: D1404231
Revert D1404231, folly::Singleton, a class for managing singletons

Summary: Broke hhvm open source builds.  Reverting.

Reviewed By: @JoelMarcey

Differential Revision: D1453096