Improve inference of fieldtype.

Should correctly infer the tight Type{A} for a field declared as ::A if A is abstract.

I had this hanging around on my local clone. It should work as IIUC limit_type_depth is working in invariant position and will correctly insert new TypeVar when widening the bound. Tests seem to pass at least :-)