Handle TypeVars

Previously, we would write the type of:

Array{Float64}[]

as:

Array{Float64,N}

which isn't valid Julia syntax. Now we instead write:

Array{Float64,TypeVar(:N)}

which is ugly but can be unambiguously eval()ed directly.
Merge pull request #28 from simonster/typevar

Handle TypeVars