Improved handling of sizeof(x)

Resolving sizeof(x) will now return a specialized ResolveResult that contains information about which type's size is investigated. Also fixed a bug that caused sizeof() to not work when initializing fields. Also made sizeof(SomeEnum) resolve to the size of the underlying type which is illegal according to the spec, but mcs allows it.