Recognize both Big and Small representations of IntInfs.
Translate IntInf consts to Big and Small representations.

Translate IntInf consts to Big and Small representations in conversion
from SSA to RSSA.  This is consistent with the treatment of other
IntInf operations in the conversion from SSA to RSSA: the
IntInf_toVector, IntInf_toWord, Word_toIntInf, and WordVector_toIntInf
primitives are translated to simple casts and other IntInf_*
primitives are translated to C calls.  Hence, after the conversion
from SSA to RSSA, IntInf is no longer treated as a primitive.
Remove initIntInfs from program initialization.

Translating IntInf consts to Big and Small representations in
conversion from SSA to RSSA removes the need to initialize IntInf
constants from strings in runtime initialization.
Cosmetic formatting improvements.
Constant fold IntInf_toVector and WordVector_toIntInf primitives.
More efficient translation of IntInf const to Big representation.
initial proposed structure for ffi created
Integrating changes due to the propsed structure of the ffi
code refactored..
Integrated FFI functionality to the system
kind initialization refactored
Runtime option added in import export attributes and integrated.
instances of usage of _import GC_* changed to runtime
Merge branch 'master' of https://github.com/MLton/mlton into int-inf-consts
Merge pull request #81 from MatthewFluet/int-inf-consts

IntInf constants updates.

Various updates to treatment of IntInf constants in the compiler. Highlights:
 * Recognize both Big and Small representations of IntInfs.
 * Translate IntInf consts to Big and Small representations in
   conversion from SSA to RSSA. This is consistent with the
   treatment of other IntInf operations in the conversion. After
   the conversion, IntInf is no longer treated as a primitive.
 * Remove initIntInfs from program initialization.
 * Constant fold IntInf_toVector and WordVector_toIntInf
   primitives.
Formatting and whitespace.
Rename CFunction.Kind.Functional constructor to CFunction.Kind.Pure.
Merge pull request #82 from vedantraiththa/vedant-ffi

Replace the various runtime fields (e.g., mayGC, modifiesFrontier) in
the CFunction.T constructor with a kind fields of type
CFunction.Kind.t, which has CFunction.Kind.Impure,
CFunction.Kind.Pure, and CFunction.Kind.Runtime constructors.  Impure
and Pure C functions are assumed to have no interaction with the MLton
runtime; hence, a call to an Impure or Pure C function can be made
without synchronizing the runtime state (before and after the call);
furthermore, a Pure C function is subject to common-subexpression
elimination and remove-unused optimizations.  Runtime C functions
carry the various runtime fields(e.g., mayGC, modifiesFrontier) and a
call to a Runtime C function msut appropriately synchronize the
runtime state (before and after the call).

Also introduce _import attributes "impure", "pure", and "runtime".  By
default, an _import is "impure".  The (very few) _import-s in the
Basis Library implementation that intract with the MLton runtime are
given the "runtime" attribute.