juliatypes.jl: complete subtype algorithm

I believe there are now no more known-unhandled cases. There might be
bugs and it might be highly inefficient. The bookkeeping for the
search problem is quite tricky.
Merge branch 'master' of github.com:JuliaLang/julia