Changed annotations for custom data types to be per field instead of per constructor.
This way we get more precision for the partial applied types.
Fixed crucial bug in handing out annotation variables to constructor types