[Normalizer] Free vars
[Normalizer] Free vars

Summary:
A utility computing the free variables in a type.

The `FreeVars` module decides if a type variable appears free inside a type. Here are
 some cases where this information can be useful:

   - Deciding well-formedness: a type variable should not appear free in a
     top-level type.

   - Computing recursive types: we decide if a type is recursive, we will need
     if it appears free in its expansion. (More can be found in the type
     normalizer module.)

Reviewed By: samwgoldman

Differential Revision: D6736083

fbshipit-source-id: 3691d1871f80086128583198d86809137443cd07

claudiopro/flow,AgentME/flow,JonathanUsername/flow,facebook/flow,AgentME/flow,nmote/flow,JonathanUsername/flow,popham/flow,samwgoldman/flow,claudiopro/flow,samwgoldman/flow,facebook/flow,popham/flow,nmote/flow,JonathanUsername/flow,gabelevi/flow,gabelevi/flow,gabelevi/flow,nmote/flow,AgentME/flow,nmote/flow,claudiopro/flow,nmote/flow,facebook/flow,nmote/flow,jamesgpearce/flow,JonathanUsername/flow,AgentME/flow,claudiopro/flow,gabelevi/flow,jamesgpearce/flow,jamesgpearce/flow,samwgoldman/flow,samwgoldman/flow,jamesgpearce/flow,mroch/flow,claudiopro/flow,gabelevi/flow,samwgoldman/flow,mroch/flow,mroch/flow,mroch/flow,JonathanUsername/flow,facebook/flow,mroch/flow,mroch/flow,jamesgpearce/flow,gabelevi/flow,popham/flow,facebook/flow,popham/flow,samwgoldman/flow,JonathanUsername/flow,JonathanUsername/flow,jamesgpearce/flow,gabelevi/flow,popham/flow,jamesgpearce/flow,mroch/flow,facebook/flow,popham/flow,samwgoldman/flow,AgentME/flow,facebook/flow,popham/flow,nmote/flow