The theory of subnormal operators