Move FutureCombinators, FutureCallbacks and FutureFactories inside Future

Mostly for documentation purposes, they need to be public and it looks so ugly when they are at the top level.