juliatypes.jl: improve Union handling

track all union-related decision points instead of just union objects.
should now handle everything except nested unions.
Merge branch 'master' of github.com:JuliaLang/julia